【发布时间】:2012-03-07 14:51:12
【问题描述】:
我想获取 Twitter 用户的国家/地区名称。
为此,我从<location> 标签中获得了位置,其中一些用户写了他们的国家名称,一些写了他们的城市名称,还有一些写了他们的州名。
我想获取所有用户的国家/地区名称。我该怎么做?
【问题讨论】:
我想获取 Twitter 用户的国家/地区名称。
为此,我从<location> 标签中获得了位置,其中一些用户写了他们的国家名称,一些写了他们的城市名称,还有一些写了他们的州名。
我想获取所有用户的国家/地区名称。我该怎么做?
【问题讨论】:
一种方法是使用 Google Maps API(尽管它可能有点矫枉过正)。例如,假设有人将他们的国家列为“雅加达”(实际上是印度尼西亚的一个城市)。然后您将提交以下 Maps API 请求:
http://maps.googleapis.com/maps/api/geocode/json?address=Jakarta&sensor=false
返回一个 JSON 对象。然后,您使用您最喜欢的 JSON 解析器对其进行解析,并提取“地址组件”字段的“long_name”字段,类型为“国家”。在这种情况下,就是“印度尼西亚”。
【讨论】:
尝试使用方便的许可证(如GeoWorldMap from here)查找资源文件或数据库。无论如何,你不会从 Twitter 用户那里获得准确的信息,而且他们在个人资料中写的内容可能是完全错误的。所以我会使用静态资源并解码尽可能多的位置。
【讨论】:
您可以使用 Google 地图的自动填充脚本来获取城市的可能国家/地区。它的工作原理是这样的:当您键入“New York”时,它会提示您“New York, USA”。但请记住,您不能总是从城市名称中得到国家名称:德国有柏林,康涅狄格州也有。
【讨论】:
您可以在 YQL 中使用地理表: http://developer.yahoo.com/yql/console/#h=select%20*%20from%20geo.places%20where%20text%3D%22jakarta%22
查询示例:select * from geo.places where text="jakarta"
【讨论】: