2009-11-30 137 views
29

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

雅虎API只要发送回一个RSS feed为您提供WOEID - >http://weather.yahooapis.com/forecastrss?w=4097

是否有这样做的一个道德的方式?我的初学者知识告诉我,我必须编写一个脚本,使用该术语搜索雅虎并获取第一个WOEID,但我认为雅虎不希望脚本执行此操作,而且似乎过于复杂......如果不是,是否有其他替代方法那些会让我更容易的API?

谢谢!

+1

对于任何人绊倒上2013这个问题仅选择指定的字段:雅虎杀死WOEID APIs。我们在这里发布了这篇文章:http://soup.metwit.com/post/47181933854/an-alternative-to-yahoo-weather-api – 2013-04-08 09:34:20

回答

64

为什么不只是使用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 

无需刮。

干杯

(披露;我为雅虎工作,是WOEIDs和GeoPlanet背后的集团的一部分)

+2

谢谢Vicchi! 你们做了一件很棒的工作,让我这样的初学者很容易学习! – askon 2009-12-01 22:01:36

+2

圣烟,这个答案是上课。只是我在找什么 – Ryan 2010-10-15 00:52:58

+0

我得到国家ID,但在这张桌子是乡村小镇? – lolalola 2010-12-01 21:56:41

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://其中。 yahooapis.com/v1/place/2507854?appid=[yourappidhere]

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

  4. 获取的范围内相匹配的给定地方,WOEIDs的,通过最有可能的命令: 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一个特定的语言(它存在的地方): http://where.yahooapis.com/v1/places.q('usa')?郎= 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]

1

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

使用自由形式的输入格式地理编码街道地址(1600宾夕法尼亚大街,华盛顿特区):

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一大道,桑尼维尔,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一大道,桑尼维尔,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能力以从响应