无法从标记单击反转地理编码

时间:2011-12-10 15:03:39

标签: javascript google-maps-api-3 reverse-geocoding

我想知道是否有人可以帮助我。

我正在尝试为this页面组合反向地理编码功能,用户点击地图标记并执行反向地理编码,使用输出地址填充文本字段。

在我从本网站收到一些很好的建议后,我以为我已经解决了这个问题,但我似乎无法解决我的问题。

我可以使用标记lat和lng坐标填充文本字段,但我无法从反向地理编码中获取任何输出。

我已经浏览了JS Fiddle的代码,并且Javscript没有问题,我一直在看一些在线教程,但我不知道我哪里出错。

我只是想知道是否有人可以看看这个,让我知道我哪里出错了。

非常感谢

1 个答案:

答案 0 :(得分:0)

我再次浏览了我的代码,并意识到它不太正确。

反向地理编码脚本应如下所示:

(function reversegeocode() {


            var lat = document.getElementById('findosgb36lat').value;
            var lng = document.getElementById('findosgb36lon').value;

            var latlng = new google.maps.LatLng(lat, lng);

            getAddress(latlng);

            return false;
        }

    )

    function geocodePosition(pos) {
        geocoder.geocode({
            latLng: pos
        },

        function(responses) {
            if (responses && responses.length > 0) {
                updateMarkerAddress(responses[0].formatted_address);
            } else {
                updateMarkerAddress('Cannot determine address at this location.');
            }
        });
    }

    function updateMarkerAddress(str) {
        document.getElementById('address').value = str;
    }

    function getAddress(latlng) {

        if (!geocoder) {
            geocoder = new google.maps.Geocoder();
        }

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

            if (status == google.maps.GeocoderStatus.OK) {
// Looping through the result
for (var i = 0; i < results.length; i++) {
if (results[0].formatted_address) {

                document.getElementById('address').value = results[0].formatted_address;
            }

    }
    }
    }
    )
    }