Использование последней версии карт Google. Как добавить маркеры с использованием долготы и широты и автоматически настроить уровень масштабирования карты, чтобы включить все маркеры с помощью JavaScript?
Автоматическая настройка масштаба для размещения всех маркеров на карте google
Ответ 1
API Google Maps v3 предоставляет объект LatLngBounds
, к которому вы можете добавить несколько объектов LatLng
. Затем вы можете передать это функции Map.fitBounds()
, как описано здесь:
- Масштабирование всех маркеров, полилиний или многоугольников на карте Google - API v2
- Масштабирование всех маркеров на карте Google v3
Частичный пример
var latlng = [
new google.maps.LatLng(1.23, 4.56),
new google.maps.LatLng(7.89, 1.01),
// ...
];
var latlngbounds = new google.maps.LatLngBounds();
for (var i = 0; i < latlng.length; i++) {
latlngbounds.extend(latlng[i]);
}
map.fitBounds(latlngbounds);
Ответ 2
Вы добавляете маркеры на свою карту google, создавая объект marker для каждой из ваших пар широты/долготы:
var marker = new google.maps.Marker({
position: currentLatLng,
map: map,
title:"Title!"
});
Параметр map в конструкторе маркера свяжет новый объект рынка с вашей картой.
Чтобы увеличить карту, чтобы включить новые маркеры, вы используете метод fitBounds на объекте map. fitBounds принимает объект latLngBounds в качестве параметра. Этот объект имеет удобный метод расширения, который будет корректировать границы для включения новой широты/долготы. Таким образом, вам просто нужно прокручивать все свои точки, вызывая расширение на одном объекте latLngBounds. Это расширит границы, чтобы включить все ваши маркеры. Когда вы это сделаете, вы передадите этот объект в метод fitBounds на map, и он будет масштабироваться, чтобы показать все ваши новые маркеры.