Я использую следующий код для установки маркеров на моей карте:
var latLngs = []
$.each(locations.markers, function(i, m){
var myLatLng = new google.maps.LatLng(m.latitude, m.longitude);
latLngs[i] = myLatLng
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
shadow: shadow,
icon: image,
shape: shape,
title: m.city,
zIndex: i
});
})
Маркеры обнаруживаются на моей карте. Теперь я хотел бы центрировать и масштабировать карту на этих маркерах. Как я могу выполнить это? Я попробовал:
map.fitBounds(getBoundsForLatLngs(latLngs));
console.log latLngs выделяет:
[(46.793182, 7.146903) { b=46.793182, more...}, (46.8077779, 7.1709386) { b=46.8077779, more...}]
Но это, кажется, не работает, и я не получаю ошибки в консоли. Что я делаю неправильно?
Я также нашел это исправление, которое увеличивает масштаб, чтобы соответствовать всем маркерам
LatLngList: массив экземпляров latLng , например:
// "map" is an instance of GMap3
var LatLngList = [
new google.maps.LatLng (52.537,-2.061),
new google.maps.LatLng (52.564,-2.017)
],
latlngbounds = new google.maps.LatLngBounds();
LatLngList.forEach(function(latLng){
latlngbounds.extend(latLng);
});
// or with ES6:
// for( var latLng of LatLngList)
// latlngbounds.extend(latLng);
map.setCenter(latlngbounds.getCenter());
map.fitBounds(latlngbounds);