如何检测用户何时处于最大缩放级别? (谷歌地图v3)

时间:2011-09-22 10:37:38

标签: google-maps google-maps-api-3

我正在将我的标记聚集在一起。当用户放大到最高级别时,我需要打破群集,以便用户可以查看单个项目的信息。鉴于缩放级别的数量根据所使用的地图类型而有所不同,并且'maxZoom'可能已在mapOptions中明确设置,如何检测用户何时无法进一步缩放(即缩放滑块位于其最高点) )?我只能使用缩放级别编号(也许是21)?或者这个数字是否根据不同的情况而变化?这些情景会是什么?

在放大之前我不需要知道这个值:仅当用户达到最高级别时才知道。

3 个答案:

答案 0 :(得分:6)

google maps api有一个service,你可以这样使用它:

(new google.maps.MaxZoomService()).getMaxZoomAtLatLng(map.getCenter(), function(response) {
    if (response.status != google.maps.MaxZoomStatus.OK) {
      alert("Error in MaxZoomService");
      return;
    } else {
      if (map.getZoom() >= response.zoom) {
          //do sth with your clusterer
          //probably markerClusterer.setMaxZoom(response.zoom - 1);
          //or markerClusterer.setMap(null);
      }
    }
});
编辑:我在markerclusterer.js中找到了一个解决方案(来自谷歌地图实用工具库),但它最近开始导致错误,我不确定它是否可靠:

map.mapTypes[map.getMapTypeId()].maxZoom;

答案 1 :(得分:0)

从快速测试看,在你到达街景级别之前,看起来像z = 19是最放大的。经过几个国家的测试,它没有改变。

答案 2 :(得分:0)

大多数城市地图将放大到18,但有些超出了这个范围,并且有23级的孤立卫星视图。