праздное событие на гугл-картах с помощью jQuery - PullRequest
4 голосов
/ 15 сентября 2011

Я установил карту Google на своем сайте и хочу перезагружать маркеры при каждом изменении границ карты (путем перетаскивания или увеличения).

Я использовал jQuery, чтобы добавить карту и очистить маркеры всначала:

$('#map_canvas').gmap();
$('#map_canvas').gmap('clear', 'markers');

, а затем добавьте маркеры с помощью:

$('#map_canvas').gmap('addMarker', {'position': position, 'bounds': true });

Мой вопрос: как я могу "отловить" событие перемещения карты?Я уже читал, что есть событие простоя, и Я видел пример :

google.maps.event.addListener(map, 'idle', function() {
});

, но все, что я помещаю вместо переменной «map», не работает ...Я также попробовал:

map = new google.maps.Map(document.getElementById("map_canvas"));

У кого-нибудь есть идея?

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

Дэнни

Ответы [ 2 ]

3 голосов
/ 28 сентября 2013

Для других, имеющих эту проблему:

Вы можете получить объект / переменную карты следующим образом:

$('#map_canvas').gmap();
var map = $('#map_canvas').gmap('get', 'map');

Как только у вас есть объект карты, вы можете прикрепить к нему прослушиватели событий:

$(map).addEventListener('idle', function() {
    console.log('Map is now idle');
    console.log(map.getCenter());
});

HTH

1 голос
/ 27 марта 2012

внутри вашей определенной функции вы можете делать все, что захотите.Это называется всегда, когда границы карты меняются.Например:

google.maps.event.addListener(map, 'idle', function() {
 var bounds = map.getBounds();
 var sw = bounds.getSouthWest();
 var ne = bounds.getNorthEast();
 alert("minimum lat of current map view: " + sw.lat());
});

"карта" должна быть созданной вами картой Google.

var map = new google.maps.Map( document.getElementById('map_canvas'), myOptions );

Ура!Томас

...