2

我在地图上有一些标记,当用户单击它们时,我使用谷歌地理编码器来获取地址信息。问题在于 Google 返回此数据的格式。我想以一致的格式显示地址,例如

  • 加拿大不列颠哥伦比亚省温哥华
  • 美国华盛顿州西雅图
  • 澳大利亚新南威尔士州悉尼

有人知道解析这些数据的简单方法吗,所以我最终得到了一些不错的简单 json,例如

{"city":"Vancouver", "region":"British Columbia", "country":"Canada"}

谢谢。

4

1 回答 1

4

哦,伙计,我认为政治地理如此简单的日子是更甜蜜的日子。如果谷歌可以返回这样的数据,他们肯定会的。相反,你会得到一团糟的地方、次地方、行政区域级别 *、国家等。

为了说明这一点,请考虑以下内容:

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

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

对于曼哈顿,你的状态还不错。您会看到自治市镇(曼哈顿)、城市(纽约)、县(纽约)和州(纽约)。对于布鲁克林来说,事情并不那么干净。你会得到自治市镇(布鲁克林)、县(国王)和州(纽约)。

现在,如果您向长岛走一小段路,您会获得更多乐趣:

http://maps.googleapis.com/maps/api/geocode/json?address=40.723464,%20-73.716282&sensor=false

在这种情况下,您会看到村庄(花卉公园)、城镇(亨普斯特德)、县(拿骚)和州(纽约),但一切都有些混乱。

这是一个州 20 英里内的变化。如果你摆脱它,你可以指望更少。在英国,我们最想看到的伦敦将是大伦敦的一些较小的自治市镇。

谷歌提供了一个深刻而丰富的分类来处理这种变化,但你仍然需要应用你自己的规则来理解它(通常是在逐个州和逐个国家的层面上)

于 2010-12-12T02:05:34.213 回答