2010-09-29 4 views
2

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

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

Вот relivant код:

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

Я столкнулся с той же проблемой и использовал zoom_changed и drageng –

ответ

1

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

google.maps.event.addListener(map, 'bounds_changed', (function() { 
    var timer; 
    return function() { 
     clearTimeout(timer); 
     timer = setTimeout(function() { 
      // here goes an ajax call 
     }, 500); 
    } 
}())); 
1

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

google.maps.event.addListener (карта, 'холостой', функция() { });

Смежные вопросы