Подтвердить что ты не робот

Автоматическая настройка масштаба для размещения всех маркеров на карте google

Использование последней версии карт Google. Как добавить маркеры с использованием долготы и широты и автоматически настроить уровень масштабирования карты, чтобы включить все маркеры с помощью JavaScript?

4b9b3361

Ответ 1

API Google Maps v3 предоставляет объект LatLngBounds, к которому вы можете добавить несколько объектов LatLng. Затем вы можете передать это функции Map.fitBounds(), как описано здесь:

Частичный пример

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, и он будет масштабироваться, чтобы показать все ваши новые маркеры.