如何在Java中找到城市名称的国家名称?

时间:2012-02-16 07:41:59

标签: java android twitter

我想获取Twitter用户的国家/地区名称。

为此,我从<location>标签获取了位置,其中一些用户写了他们国家的名字,一些人写了他们城市的名字,一些人也写了他们的州名。

我想获取所有用户的国家/地区名称。我怎么能这样做?

4 个答案:

答案 0 :(得分:10)

一种方法是使用Google Maps API(虽然它可能有点过分)。例如,假设有人将他们的国家列为“雅加达”(实际上是印度尼西亚的一个城市)。然后,您将提交以下Maps API请求:

http://maps.googleapis.com/maps/api/geocode/json?address=Jakarta&sensor=false

返回一个JSON对象。然后使用您最喜欢的JSON解析器解析它,并提取“address components”字段的“long_name”字段,类型为“country”。在这种情况下,那就是“印度尼西亚”。

答案 1 :(得分:5)

尝试使用方便的许可证(例如GeoWorldMap from here)查找资源文件或数据库。无论如何,你都不会从Twitter用户那里得到准确的信息,他们在个人资料中写的内容可能是完全错误的。所以我使用静态资源并尽可能多地解码。

答案 2 :(得分:4)

您可以使用Google地图的自动填充脚本来获取某个城市的国家/地区。它的工作方式如下:当您键入“纽约”时,它会建议您“美国纽约”。但请记住,你不能总是从城市名称中获得国家名称:德国和康涅狄格州也有柏林。

答案 3 :(得分:4)

你可以在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"