【发布时间】:2011-07-17 11:53:45
【问题描述】:
每当 googlemaps 视口中心发生变化时,我都会尝试使用邮政编码向我的数据库提交查询。我知道这可以通过反向地理编码来完成,例如:
google.maps.event.addListener(map, 'center_changed', function(){
newCenter();
});
...
function newCenter(){
var newc = map.getCenter();
geocoder.geocode({'latLng': newc}, function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
var newzip = results[0].address_components['postal_code'];
}
});
};
当然,这段代码实际上不起作用。所以我想知道我需要如何更改它才能从结果数组中提取邮政编码。 谢谢
【问题讨论】:
-
编辑:看起来我别无选择,只能遍历地址组件并使用 types[0] == 'postal_code' 搜索一个?有没有更好的方法来做到这一点?
-
@RomainM 是的,除非您想从结果中手动解析它,否则我会假设
-
是的,您必须遍历数组并在其
types数组中查找具有“postal_code”的元素,该元素可能是最后一个或第一个或介于两者之间的任何位置。此外,哪个元素?您可能想从results[0].address_components或results本身获取邮政编码:两者都试一下,看看哪个在您关心的地区最有效。一般来说,如果你关心有完整地址的地方,我建议results[0].address_components,如果你想在你得到的邮政编码中严格控制你的纬度,我会推荐results。
标签: google-maps google-maps-api-3 geocoding reverse-geocoding postal-code