2009-11-30 136 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能力以從響應