Геокод Google Maps внутри слушателя - PullRequest
1 голос
/ 11 октября 2011

Я не знаю, почему переменная r1 не определена. 'latLng': mEvent.latLng работает нормально с другими функциями ...

<!-- API V3 --> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

....

.....

....

google.maps.event.addListener(map, 'click', function(mEvent) {

            var geo1 = new google.maps.Geocoder();
            geo1.geocode( { 'latLng': mEvent.latLng }, function(results, status) {
                if ( status == google.maps.GeocoderStatus.OK )
                {
                    var r1 = results[0].formatted_address;
                }
                else
                {
                    var r1 = '?';
                }
            });

            //do things with mEvent.latLng and r1...

1 Ответ

1 голос
/ 11 октября 2011

Переменная r1, скорее всего, не определена, поскольку находится вне области видимости.Вам нужно немного сдвинуть объявление.Например:

google.maps.event.addListener(map, 'click', function(mEvent) {

        var geo1 = new google.maps.Geocoder();
        var r1;
        geo1.geocode( { 'latLng': mEvent.latLng }, function(results, status) {
            if ( status == google.maps.GeocoderStatus.OK )
            {
                r1 = results[0].formatted_address;
            }
            else
            {
                r1 = '?';
            }
        });

        //do things with mEvent.latLng and r1...

Если у вас все еще есть проблемы, используйте Firebug (в Firefox) или встроенные отладчики в других браузерах.Вы можете вставить «отладчик»;ключевое слово для остановки на какой-то строке, когда отладчик активен.После этого вы сможете проверить, какие переменные доступны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...