如何通过反向地理编码获得可靠的美国州响应?

时间:2012-02-15 01:13:27

标签: api maps reverse reverse-geocoding

当对lat / long进行反向地理编码时,Google有时会返回错误的美国州。据推测,这是因为谷歌正在尝试返回最近的街道地址,在某些情况下,该地址与您尝试撤销地理编码的纬度/长度不同。

虽然在实践中这可能不是常见情况,但通过玩地图来复制很容易:http://gmaps-samples.googlecode.com/svn/trunk/geocoder/reverse.html

对于我的应用程序,我不太关心获取最近的地址,而更关心的是总是获得正确的美国状态为纬度/经度。有没有办法通过Google的API实现这一目标?

谢谢

1 个答案:

答案 0 :(得分:0)

迭代所有结果,然后选择"administrative_area_level_1"

results[i].types的结果

这比采用"等效的"更好。从第一个结果中寻址组件,即在"administrative_area_level_1"

中查找results[0].address_components[j].types

当反向地理编码将您的latlng锁定到恰好处于不同状态(或国家/地区)的最近地址时,第一个结果的州/国家/地区地址组件将是该地址所在的地址,但后续结果将是输入latlng所在的州/国家。

示例:42.834185,-0.302811在西班牙,但是在法国的地址上快照。

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D42.834185%252C-0.302811

results[0].address_components[3].types = ["administrative_area_level_1", "political"]
results[0].address_components[3].short_name = "FR"
results[6].types = ["administrative_area_level_1", "political"]
results[6].short_name = "ES"