29

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

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

有这样做的道德方式吗?我的初学者知识告诉我,我必须编写一个脚本,使用该术语搜索雅虎并获取第一个 WOEID,但我认为雅虎不希望脚本这样做,而且它似乎过于复杂......如果没有,有没有其他选择可以让我更轻松的 API?

谢谢!

4

3 回答 3

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

不需要刮。

干杯

G

(披露;我为雅虎工作!并且是 WOEIDs 和 GeoPlanet 背后小组的一员)

于 2009-12-01T09:56:57.453 回答
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 ('sydney%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 ('springfield');start=0;count=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')?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]

于 2011-05-06T17:33:57.017 回答
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 仅从响应中选择指定字段的能力

于 2013-07-19T13:22:19.567 回答