getBounds()
в API Карт Google v3
Таким образом, чтобы получить широту и долготу, нам нужно переместить getBounds()
в bounds_changed
прослушиватель событий.
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 10,
center: new google.maps.LatLng(lat, lng),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
google.maps.event.addListener(map, 'bounds_changed', function() {
var bounds = map.getBounds();
var ne = bounds.getNorthEast();
var sw = bounds.getSouthWest();
console.log(ne.lat());
console.log(ne.lng());
console.log(sw.lat());
console.log(sw.lng());
});
Это событие вызывается при изменении границ области просмотра. Если у вас есть вызов ajax, то при каждом изменении положения карты вызов ajax срабатывает.
Итак, лучшее решение в этом случае - переместить getBounds()
в idle
прослушиватель событий. Это событие вызывается, когда карта становится бездействующей после увеличения.
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 10,
center: new google.maps.LatLng(lat, lng),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
google.maps.event.addListener(map, 'idle', function() {
var bounds = map.getBounds();
var ne = bounds.getNorthEast();
var sw = bounds.getSouthWest();
console.log(ne.lat());
console.log(ne.lng());
console.log(sw.lat());
console.log(sw.lng());
});