如何将Google地理编码API结果映射到简单的城市,地区,国家/地区

时间:2010-12-12 00:51:41

标签: json google-geocoder

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

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

有没有人知道解析这些数据的简单方法,所以我最终得到了一些很好的简单json,如

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

感谢。

1 个答案:

答案 0 :(得分:4)

哦,男人,我认为政治地理这么简单的日子是更甜蜜的日子。如果谷歌可以返回这样的数据,他们肯定会。相反,你得到一堆地方,sublocality,administrative_area_level_ *,国家等。

为了说明这一点,请考虑以下事项:

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英里范围内的变化。如果你离开那个,你可以依靠更少。在英国,我们希望看到的大部分伦敦都是大伦敦的一个较小的区域。

Google提供了深入而丰富的分类法来处理这种变化,但您仍然需要应用自己的规则来理解它(通常按州和国家/地区分类)