最佳答案
我正在地图上绘制一系列标记(使用地图 api 的 v3)。
在 v2中,我有以下代码:
bounds = new GLatLngBounds();
... loop thru and put markers on map ...
bounds.extend(point);
... end looping
map.setCenter(bounds.getCenter());
var level = map.getBoundsZoomLevel(bounds);
if ( level == 1 )
level = 5;
map.setZoom(level > 6 ? 6 : level);
这样可以很好地确保在地图上总是有一个合适的细节层次。
我试图在 v3中复制这个功能,但 setZoom 和 fitBound 似乎不合作:
... loop thru and put markers on the map
var ll = new google.maps.LatLng(p.lat,p.lng);
bounds.extend(ll);
... end loop
var zoom = map.getZoom();
map.setZoom(zoom > 6 ? 6 : zoom);
map.fitBounds(bounds);
我尝试了不同的排列(例如,在 setZoom 之前移动 fitBound) ,但是我对 setZoom 所做的任何操作似乎都不会影响地图。我错过了什么吗?有办法吗?