我有一个应用程序(除其他外)使用 Yahoo Weather API 来显示用户选择的位置的天气状况。
在用户可以输入位置的配置对话框中,我很乐意提供自动完成功能,以便在用户输入位置名称时,建议匹配城市列表。
我可以使用 YQL 来获取匹配前缀的位置,即:
select * from geo.places where text = 'Vie*'
但问题是并非每个位置都有与之关联的气象站,我很想在我的自动完成列表中跳过这些。
使用社区表(名为 weather.woeid 的表),以下查询将使用天气 api 加入先前的查询,仅返回具有气象站的位置:
select location from weather.woeid where w in (select woeid from geo.places where text = 'Vie*')
这几乎解决了我的问题,除了以前的查询(产生与天气 api 调用相同的结果)不返回 WOEID 或任何类型的标识符,我可以在配置后直接查询天气 API。如何捕获连接参数 w 的值?我尝试了类似select w, location ...
的方法,但这似乎不起作用。
有没有其他方法可以获取与某些前缀匹配的位置列表(包括 WOEID),这些前缀具有与之关联的天气数据?