32

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

ответ

69

API Карт Google 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); 
+1

BTW: При работе с массивом маркеров вы можете получить позицию маркеров с помощью метода 'getPosition()'. –

20

Вы добавить маркеры на карту Google на инстанцировании marker объект для каждого из широты/долготы пар:

var marker = new google.maps.Marker({ 
    position: currentLatLng, 
    map: map, 
    title:"Title!" 
}); 

map вариант на маркер строителю будет ассоциировать новый объект на рынке с вашей картой.

Чтобы увеличить карту, чтобы добавить новые маркеры, используйте метод fitBounds на объекте map. В качестве параметра fitBounds принимает объект latLngBounds. У этого объекта есть удобный метод , расширяющий метод, который будет корректировать границы, чтобы включить новую широту/долготу. Поэтому вам просто нужно прокрутить все свои очки, набрав , продолжите на одном объекте latLngBounds. Это расширит границы, чтобы включить все ваши маркеры. Как только вы это сделаете, вы передаете этот объект в метод fitBounds на map, и он будет масштабироваться, чтобы показать все ваши новые маркеры.

+0

хотя вы предоставили правильный ответ * первый * .. как обычно большинство пунктов перешло к другому * тому же * ответу, который на самом деле имел пример кода. – abbood

+1

@abbood Спасибо за отзыв;) – RedBlueThing

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