Yahoo Weather API WOEID检索

时间:2009-11-30 21:53:35

标签: php api yahoo weather

我正在创建一个应用程序(PHP),它从免费的RSS源中获取雅虎天气数据,并根据从RSS源检索到的数据将其与颜色十六进制相关联。我遇到的问题是找到一种方法来获取位置代码或WOEID,而无需手动执行。

只要您提供WOEID,Yahoos API就会发回RSS提要 - > http://weather.yahooapis.com/forecastrss?w=4097

这样做有道德的方法吗?我的初学者知识告诉我,我必须编写一个脚本,使用该术语搜索雅虎,并抓住第一个WOEID,但我会假设雅虎不希望脚本这样做,它似乎过于复杂......如果没有,有没有其他选择API会让我更容易吗?

谢谢!

3 个答案:

答案 0 :(得分:65)

为什么不直接使用Yahoo! GeoPlanet服务将地点解析为WOEID?或者使用YQL服务通过它的表访问GeoPlanet?

http://where.yahooapis.com/v1/places.q('Barrie CA')?appid=[yourappidhere]

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22Barrie%20CA%22&format=xml

无需刮擦。

干杯

(披露;我为Yahoo!工作,并且是WOEIDs和GeoPlanet背后的团队成员)

答案 1 :(得分:5)

我从以下网站获得了一些有用的信息: http://developer.yahoo.com/geo/geoplanet/

并且

http://developer.yahoo.com/geo/geoplanet/guide/api-reference.html#api-countries

  1. 找到重要里程碑的WOEID: http://where.yahooapis.com/v1/places.q( '西尼%20opera%20house')?的appid = [yourappidhere]

  2. 将WOEID解析到某个地方: http://where.yahooapis.com/v1/place/2507854?appid= [yourappidhere]

  3. 查找特定地点的WOEID: http://where.yahooapis.com/v1/places.q( '的Northfield%20MN%20usa')?的appid = [yourappidhere]

  4. 获取与给定地点匹配的一系列WOEID,按最可能的顺序排序: http://where.yahooapis.com/v1/places.q( '斯普林菲尔德');开始= 0;计数= 5的appid = [yourappidhere]

  5. 找到给定WOEID的父级(并返回详细记录): http://where.yahooapis.com/v1/place/638242/parent?select=long&appid= [yourappidhere]

  6. 以特定语言(存在的位置)返回给定WOEID的Placename: ?http://where.yahooapis.com/v1/places.q( 'USA')LANG = FR&安培;的appid = [yourappidhere]

  7. 以JSON格式获取地点的表示形式: http://where.yahooapis.com/v1/place/2487956?format=json&appid= [yourappidhere]

  8. 要获取与特定WOEID相邻的地理列表: http://where.yahooapis.com/v1/place/12795711/neighbors?appid= [yourappidhere]

答案 2 :(得分:1)

雅虎! Geo Technologies很高兴地宣布在YQL中提供PlaceFinder支持。 geo.placefinder表允许用户通过YQL查询向PlaceFinder发出请求。新表提供了几种访问PlaceFinder的方法。可以使用http://query.yahooapis.com/v1/public/yql?q...&appid=test检索支持的请求和参数的描述。以下是一些例子:

使用自由格式输入格式对街道地址(1600 Pennsylvania Ave,Washington,DC)进行地理编码:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20text%3D%221600%20Pennsylvania%20Ave%2C%20Washington%2C%20DC%22&appid=test

使用多行输入格式对街道地址(701 First Ave,Sunnyvale,CA 94089)进行地理编码:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20line1%3D%22701%20First%20Ave%22%20and%20line2%3D%22Sunnyvale%2C%20CA%2094089%22&appid=test

对机场代码(SFO)进行地理编码:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20text%3D%22sfo%22&appid=test

使用法语对兴趣点(POI)进行地理编码:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20text%3D%22Eiffel%20Tower%22%20and%20lang%3D%22fr%22&appid=test

使用地理坐标进行反向地理编码:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20text%3D%2237.416275%2C%20-122.025092%22%20and%20gflags%3D%22R%22&appid=test

使用解析的输入格式对街道地址(701 First Ave,Sunnyvale,CA 94089)进行地理编码:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20house%3D%22701%22%20and%20street%3D%22First%20Ave%22%20and%20city%3D%22Sunnyvale%22%20and%20state%3D%22CA%22%20and%20postal%3D%2294089%22&appid=test

确定地址的最近的十字路口和时区:

http://query.yahooapis.com/v1/public/yql?q=select%20line1%2C%20line2%2C%20line3%2C%20line4%2C%20cross%2C%20timezone%20from%20geo.placefinder%20where%20text%3D%22701%20First%20Ave%2C%20Sunnyvale%2C%20CA%22%20and%20flags%3D%22T%22%20and%20gflags%3D%22C%22&appid=test

此示例说明了YQL仅从响应中选择指定字段的能力