Google Map API v3: Center & Zoom на отображенных маркерах

Я использую следующий код для установки маркеров на моей карте:

  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...}]

Но это, кажется, не работает, и я не получаю ошибки в консоли. Что я делаю неправильно?

55
задан Reinstate Monica 12 April 2013 в 15:19
поделиться

1 ответ

Я также нашел это исправление, которое увеличивает масштаб, чтобы соответствовать всем маркерам

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); 
127
ответ дан 26 November 2019 в 17:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: