Yahoo YQL:按坐标查找城市WOEID

Iva*_*vic 5 yql yahoo-api

如果我使用YQL了解城市的纬度和经度,如何获得城市的WOEID?

shs*_*haw 8

对于那些仍然试图通过坐标查找WOEID的人来说,其他答案现在已经过时了.使用数据表geo.placefinder查找纬度和经度,WOEID将在返回的结果中.

通过YQL:

SELECT * FROM geo.placefinder WHERE text="{$seedLat}, {$seedLon}" and gflags="R"
Run Code Online (Sandbox Code Playgroud)

(在YQL控制台上测试它.)

通过REST:

http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20geo.placefinder%20WHERE%20text%3D%22{$seedLat}%2C{$seedLon}%22%20and%20gflags%3D%22R%22
Run Code Online (Sandbox Code Playgroud)

  • 这不再有效.我相信YQL已经关闭了对placefinder表的访问权限.`Tenant'query_yahooapis_com'访问'资源[tenantName = query_yahooapis_com,type = TABLE,name = geo.placefinder,locatorType = FILE,url =/home/y/share/manhattan/application/tenantBundles/yql_query_yahooapis_com_manhattan_v2/YQL-INF/restdefs /geo.placefinder.xml,useUrl = false]'被拒绝 (10认同)

Cha*_*ley 1

使用 YQL 控制台,您可以搜索“placeTypeName.code”为 7 的最近地点

http://developer.yahoo.com/yql/console/

SELECT * FROM geo.places WHERE text="{$seedLat}, {$seedLong}" AND placeTypeName.code = 7
Run Code Online (Sandbox Code Playgroud)

该查询的 REST 查询看起来像这样:

http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20geo.places%20WHERE%20text%3D%22{$seedLat}%2C%20{$seedLong}%22%20AND%20placeTypeName.code%20%3D%207&format=json&diagnostics=true&callback=
Run Code Online (Sandbox Code Playgroud)

显然用你自己的坐标替换$seedLat和:)$seedLong