首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Yahoo,如何获得与具有可用天气数据的特定前缀匹配的位置列表

使用Yahoo,如何获得与具有可用天气数据的特定前缀匹配的位置列表
EN

Stack Overflow用户
提问于 2011-03-20 17:17:10
回答 1查看 1.8K关注 0票数 1

我有一个应用程序(除其他外),它使用雅虎天气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)匹配某些有天气数据的前缀吗?

EN

回答 1

Stack Overflow用户

发布于 2011-04-19 20:16:29

Afaik YQL不可能通过从Sub-Select (内部SELECT语句)到外部SELECT的值,如果我正确地理解了您,我就是您想要做的。

基于您的用例,我想提出另一种解决方案:我假设与其相关的气象站位置列表是相对静态的,这意味着这个列表不会经常更改。如果是这样的话,那么每次使用YQL重新生成该列表在性能上都不是很好。相反,我会脱机生成该列表,将其存储在文件、MySQL或其他地方,然后使用静态列表响应自动完成字段的AJAX调用。

静态列表中的数据可能如下所示:

代码语言:javascript
运行
复制
{
"Vienna" => 72342,
"Hamburg" => 12334,
...
}

一旦用户选择了一个位置并按enter键,您就可以将YQL查询发送到weather.woeid,以便根据WOEID查找当前天气。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5370088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档