Невозможно инвертировать геокод из щелчка маркера - PullRequest
0 голосов
/ 10 декабря 2011

Интересно, может ли кто-нибудь помочь мне, пожалуйста?

Я пытаюсь собрать функциональность обратного геокода для этой страницы, где пользователь нажимает на маркер картыи обратный геокод выполняется, заполняя текстовое поле с выходным адресом.

Я думал, что у меня проблема решена после того, как я получил несколько замечательных советов с этого сайта, но я просто не могу решитьУ меня есть проблема.

Я могу заполнить текстовые поля с координатами маркера lat и lng, но я просто не могу получить результат из обратного геокода.

Я прошелкод с JS Fiddle и нет никаких проблем с Javscript, и я смотрел на некоторые онлайн-учебники, но я просто не знаю, где я ошибаюсь.

Я просто подумал,кто-то может взглянуть на это, пожалуйста, и дайте мне знать, где я иду не так.

Большое спасибо

1 Ответ

0 голосов
/ 10 декабря 2011

Я снова просмотрел свой код и понял, что он не совсем правильный.

Сценарий обратного геокодирования должен выглядеть следующим образом:

(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;
            }

    }
    }
    }
    )
    }
...