5

如果我使用YQL知道城市的纬度和经度,如何获取城市的WOEID?

4

5 回答 5

8

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

通过 YQL:

SELECT * FROM geo.placefinder WHERE text="{$seedLat}, {$seedLon}" and gflags="R"

在 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
于 2013-09-25T17:35:20.360 回答
2

可以参考官方网页:http: //developer.yahoo.com/boss/geo/docs/free_YQL.html

这是一个例子:select * from geo.placefinder where text="37.416275,-122.025092" and gflags="R"

于 2013-03-28T03:04:52.780 回答
2

看起来 Yahoo 已将geo.placefinder表设为非公开,这意味着访问需要有效的应用程序 ID 和 OAuth 身份验证(请参阅免费的非商业 YQL 表使用)。如果您只需要 WOEID 并且您知道城市和州,则可以使用该geo.places表:

select * from geo.places where text="Hanover, PA" AND placeTypeName.code = 7

YQL Console

如果找到结果,则 WOEID 将返回为data.query.results.place.woeid.

然而,这并不完美。在宾夕法尼亚州,我们在搜索“汉诺威”时(至少)有三个地方可以显示(约克县的汉诺威、比弗县的汉诺威镇和卢塞恩县的汉诺威镇)。使用此方法进行搜索时,这可能会或可能不会影响您的结果。使用邮政编码应该会提高结果的准确性,并且可以使用以下boundingBox属性按已知纬度/经度过滤结果:

select * from geo.places where text="Eagle, Wisconsin" AND
  boundingBox.southWest.latitude <= 42.9147280 AND
  boundingBox.southWest.longitude <= -88.4426340 AND
  boundingBox.northEast.latitude >= 42.9147280 AND
  boundingBox.northEast.longitude >= -88.4426340 AND
  placeTypeName.code = 7

YQL Console

您仍然需要提供几个必需键之一(text是一个有效的必需键),因此这不符合仅按地理坐标搜索的条件,但希望这算作次优。

于 2016-03-03T06:51:08.340 回答
1

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

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

SELECT * FROM geo.places WHERE text="{$seedLat}, {$seedLong}" AND placeTypeName.code = 7

此查询的 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=

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

于 2012-05-29T09:32:55.783 回答
0

以前的答案都不再有效,但这确实有效。

您需要在查询中组合闪烁表,如下所示: select place.woeid from flickr.places where lat="" and lon="" and api_key=""

从 Flickr 获取 API KEY 是即时的: https ://www.flickr.com/services/apps/create/

于 2018-12-05T23:39:50.107 回答