Google Maps API:如何从lat / lng坐标获取邮政编码?

时间:2017-06-19 18:07:07

标签: javascript html5 google-geocoder

如何使用Google Maps API从lat / lng坐标获取邮政编码?

这是我到目前为止所尝试的内容

我有下面的代码,我用它来获取网页上的人的Zipcode。它加载纬度和经度,但是它失败了创建地理编码对象,GeoCoderStatus的警报没有触发。不确定我在哪里做错任何指针,请:

 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true"></script>

    <script type="text/javascript">       
            function geoloc() {
                if (navigator.geolocation) {                
                    navigator.geolocation.getCurrentPosition(
                        function (pos) {                       
                            alert(pos.coords.longitude);
                            GeoToZip(pos.coords.latitude, pos.coords.longitude);
                        }, function (err) {
                            alert(err.message);
                        }
                    );
                } else {
                    alert('Geolocation unsupported!');
                }
            }
            function GeoToZip(lat, lng) {            
                var latlng = new google.maps.LatLng(lat, lng);          
                var geocoder = new google.maps.Geocoder();             

                try {
                    geocoder.geocode({ 'latLng': latlng }, function (res, status) {

         **alert(google.maps.GeocoderStatus);**
                        if (status == google.maps.GeocoderStatus.OK && typeof res[0] !== 'undefined') {
                            var zip = res[0].formatted_address.match(/,\s\w{2}\s(\d{5})/);

                            if (zip) {
                                alert(zip[1]);
                            } else fail('Failed to parse');
                        } else {
                            fail('Failed to reverse');
                        }
                    });
                }
                catch (err) {
                    alert(err);
                }
            }

0 个答案:

没有答案