我想获取Twitter用户的国家名称。
为此,我从<location>
标签中获取位置信息,在该标签中,一些用户写了他们的国家名称,一些用户写了他们所在城市的名称,还有一些用户写了他们所在州的名称。
我想获取所有用户的国家名称。我该怎么做?
一种方法是使用Google Maps API (尽管可能有些过头)。例如,假设某人将其国家列为“雅加达”(实际上是印度尼西亚的一个城市)。然后您将提交以下Maps API请求:
http://maps.googleapis.com/maps/api/geocode/json?address=Jakarta&sensor=false
该请求会返回一个JSON对象。然后,您可以使用您喜爱的JSON解析器解析该对象,并提取“地址组件”字段中类型为“country”的“long_name”字段。在这种情况下,它是“Indonesia”。
尝试查找具有方便许可证的资源文件或数据库(例如此处的GeoWorldMap)。无论如何,您都不会从Twitter用户那里获得精确的信息,而且他们在个人资料中写下的内容可能是错误的。因此,我建议使用静态资源并尽可能解码多个位置。
select * from geo.places where text="jakarta"