Событие get_bounds карт Google запускается несколько раз - PullRequest
2 голосов
/ 29 сентября 2010

Я использую V3 javascript api для карт Google, чтобы добавить больше маркеров при изменении границ карты. Проблема в том, что когда я немного перетаскиваю карту, а затем заканчиваю перетаскивать поток событий, они запускаются сразу. Похоже, они стоят в очереди во время перетаскивания карты.

Можно ли как-нибудь добавить таймер, чтобы остановить это, или мне придется использовать события zoom_changed и dragend в качестве обходного пути?

Вот соответствующий код:

google.maps.event.addListener(map, 'bounds_changed', function() {
  var bounds_url = map.getBounds().toUrlValue();
  $.ajax({
    //... 
  });
});

Ответы [ 2 ]

1 голос
/ 07 октября 2012

Это известная ошибка, команда Google рекомендует использовать:

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

1 голос
/ 29 июня 2012

Добавьте тайм-аут, который запускает ваш код через 500 мсек после срабатывания события, каждый раз при возникновении события сбрасывает тайм-аут и создает новый.

google.maps.event.addListener(map, 'bounds_changed', (function () {
    var timer;
    return function() {
        clearTimeout(timer);
        timer = setTimeout(function() {
            // here goes an ajax call
        }, 500);
    }
}()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...