在谷歌地图中获取经度和纬度的地址和邮政编码

时间:2014-02-26 09:07:48

标签: javascript google-maps

在谷歌地图api中,我想提取地图中心的纬度和经度,并获得像邮政编码一样的地址。 这有可能获得邮政编码吗? 我为此目的使用它

var lat = -24.448674;
        var lng = 135.684569;
        var geocoder = new google.maps.Geocoder();
        var latlng = new google.maps.LatLng(lat, lng);
        geocoder.geocode({'latLng': latlng}, function(results, status)
        {
            if (status == google.maps.GeocoderStatus.OK)
            {
                if (results[1]) {
                    alert(results[1].formatted_address);
                } else {
                    alert("No results found");
                }
            }
            else
            {
                alert("Geocoder failed due to: " + status);
            }
        });

但在上面的代码中,我无法获得邮政编码并获得邮政编码! https://developers.google.com/maps/documentation/geocoding/

2 个答案:

答案 0 :(得分:1)

您可以获取postal_code类型的邮政编码:

    if (status == google.maps.GeocoderStatus.OK) {
        if (results[0]) {
            for (var i = 0; i < results[0].address_components.length; i++) {
                var types = results[0].address_components[i].types;

                for (var typeIdx = 0; typeIdx < types.length; typeIdx++) {
                    if (types[typeIdx] == 'postal_code') {
                        //console.log(results[0].address_components[i].long_name);
                        console.log(results[0].address_components[i].short_name);
                    }
                }
            }
        } else {
            console.log("No results found");
        }
    }

答案 1 :(得分:0)

据我所知,你在这里已回答了自己的问题。 “邮政编码”是给予每个国家/地区使用的邮寄地址标识符的通用名称。就美国而言,这将是“邮政编码”,在英国是“邮政编码”等。

来自您关联的文档:

  

postal_code表示用于处理国内邮件的邮政编码。

“邮政编码”下的字段很可能是您要找的,不要让命名惯例欺骗您。 Google会为每个国家/地区的可能变体重命名字段,这是不必要的工作。