Google Maps v3:在使用fitBounds时强制最小缩放级别

8 浏览
0 Comments

Google Maps v3:在使用fitBounds时强制最小缩放级别

我正在地图上绘制一系列标记(使用地图 API 的 v3 版本)。

在 v2 版本中,我有以下代码:

  bounds = new GLatLngBounds();
  ... 循环并将标记放在地图上 ...
  bounds.extend(point);
  ... 循环结束
  map.setCenter(bounds.getCenter());
  var level = map.getBoundsZoomLevel(bounds);
  if ( level == 1 ) 
    level = 5;
  map.setZoom(level > 6 ? 6 : level);

这样可以确保地图上始终显示适当的细节级别。

我试图在 v3 版本中复制这个功能,但 setZoom 和 fitBounds 似乎不配合:

... 循环并将标记放在地图上
  var ll = new google.maps.LatLng(p.lat,p.lng);
  bounds.extend(ll);
... 循环结束
var zoom = map.getZoom();
map.setZoom(zoom > 6 ? 6 : zoom);
map.fitBounds(bounds);

我尝试了不同的排列组合(例如将 fitBounds 移到 setZoom 之前),但是无论我如何使用 setZoom,地图似乎都不受影响。我有什么遗漏吗?有没有办法实现这个?

0