Я использую API Javascript Google Maps для отображения карты и отображения на ней набора маркеров местоположения. Чтобы уменьшить объем данных, возвращаемых через запрос AJAX, который получает местоположения, я отправляю координаты ограничивающего прямоугольника в запросе, чтобы возвращать только видимые местоположения.API Google Maps JS API - getBounds() не всегда определен
я в настоящее время код вдоль линий:
google.maps.event.addListener(Map.map, "bounds_changed", function() {
Map.bounds.north = Map.map.getBounds().getNorthEast().lat();
Map.bounds.east = Map.map.getBounds().getNorthEast().lng();
Map.bounds.south = Map.map.getBounds().getSouthWest().lat();
Map.bounds.west = Map.map.getBounds().getSouthWest().lng();
});
Что, как я понимаю, как getBounds
работы следует обновить Map.bounds
(который отправляется на сервер для извлечения данных), когда карта перемещается. Однако я не могу заставить его установить Map.bounds
, когда карта создана, поэтому первоначальный запрос для местоположений не удался. Если я звоню Map.map.getBounds
за пределами google.maps.event.addListener
Я получаю сообщение об ошибке getBounds
is undefined. Как установить границы после загрузки карты, прежде чем пользователь взаимодействует с ней?
(я также попытался "idle"
в дополнение к "bounds_changed"
с теми же результатами)
пожалуйста обеспечивают [mcve], который демонстрирует вашу проблему. Код, который вы опубликовали, не должен терпеть неудачу. – geocodezip
Код, который я написал, действительно работает, поэтому я разместил его, это единственный экземпляр, в котором он работает. Использование функции getBounds в любом другом контексте дает ошибку, что она не определена (все же внутри обратного вызова Google Maps). Я не столько прошу внести исправления в мой код, как пример использования getBounds вне этого точного дела. – FatalKeystroke
Это мне было непонятно. Пример того, что вы пробовали, который не работал, который, по вашему мнению, должен был бы, был бы полезен. – geocodezip