Получить маркеры вне функции геокодирования - PullRequest
0 голосов
/ 31 мая 2011

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

код:

geocoder.geocode({ address: address }, 
    function(results, status) {
        if (status == google.maps.GeocoderStatus.OK && results.length) {
            if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {
                map.setCenter(results[0].geometry.location);
                var marker = new google.maps.Marker({
                    position: results[0].geometry.location,
                    map: map
                });
            }
        }
    });

Заранее спасибо!

1 Ответ

1 голос
/ 31 мая 2011

Просто объявите вашу переменную marker вне обратного вызова и присвойте ей значение внутри обратного вызова:

var marker = null;
geocoder.geocode({ address: address }, 
    function(results, status) {
        if (status == google.maps.GeocoderStatus.OK && results.length) {
            if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {
                map.setCenter(results[0].geometry.location);
                marker = new google.maps.Marker({
                    position: results[0].geometry.location,
                    map: map
                });
            }
        }
    }
);

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

...