Google MAP API v3:中心和缩放显示的标记

我使用下面的代码在我的地图上设置标记:

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)); 

latLngs的console.log给出了:

  [(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); 

如果你喜欢更多的function风格:

 // map - instance of google Map v3 // markers - array of Markers var bounds = markers.reduce(function(bounds, marker) { return bounds.extend(marker.getPosition()); }, new google.maps.LatLngBounds()); map.setCenter(bounds.getCenter()); map.fitBounds(bounds); 

试试这个function….它工作…

 $(function() { var myOptions = { zoom: 10, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions); var latlng_pos=[]; var j=0; $(".property_item").each(function(){ latlng_pos[j]=new google.maps.LatLng($(this).find(".latitude").val(),$(this).find(".longitude").val()); j++; var marker = new google.maps.Marker({ position: new google.maps.LatLng($(this).find(".latitude").val(),$(this).find(".longitude").val()), // position: new google.maps.LatLng(-35.397, 150.640), map: map }); } ); // map: an instance of google.maps.Map object // latlng: an array of google.maps.LatLng objects var latlngbounds = new google.maps.LatLngBounds( ); for ( var i = 0; i < latlng_pos.length; i++ ) { latlngbounds.extend( latlng_pos[ i ] ); } map.fitBounds( latlngbounds ); });