MarkerClusterer缩放问题

时间:2013-02-26 20:38:31

标签: javascript google-maps google-maps-api-3 google-maps-markers markerclusterer

我正在使用最新版本的MarkerClusterer和Google Maps API v3,我想我发现了一个错误!

我的谷歌地图minZoom设置为1.从1级缩小到任何级别,然后返回1就可以了。当我尝试从1级缩小到0级时会看到错误。

当我点击从第1级缩小到第0级时,gMap用户界面不允许按预期进行缩放,但我的所有markerClusters都会消失,当我向下缩放到第2级并返回时它们会重新出现到1级。

我已在Google Maps API v3的Google网页上发布此内容,但到目前为止没有回复(截至今天已过了一周)。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

这是Maps-API中的一个错误,而不是markerClusterer中的错误,但您可以在markerClusterer.js中修复它

当你(尝试)将缩放设置为0时,我不确定你点击的位置(当我使用变焦控制时,我的问题不会发生),但是当我使用缩放设置时,它会发生map.setZoom(0)

问题:API报告缩放为0,但这是不正确的,因为缩放将设置为1(minZoom)。

<强>修正:
替换marcerclusterer.js的这一部分:

// Add the map event listeners
  var that = this;
  google.maps.event.addListener(this.map_, 'zoom_changed', function() {
    var zoom = that.map_.getZoom();

    if (that.prevZoom_ != zoom) {
      that.prevZoom_ = zoom;
      that.resetViewport();
    }
  });

......那个:

  // Add the map event listeners
  var that = this;
  google.maps.event.addListener(this.map_, 'zoom_changed', function() {
    var zoom = that.map_.getZoom(),
        minZoom=that.map_.minZoom||0,
        maxZoom=Math.min(that.map_.maxZoom||100,
                         that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom);
        zoom=Math.min(Math.max(zoom,minZoom),maxZoom);

    if (that.prevZoom_ != zoom) {
      that.prevZoom_ = zoom;
      that.resetViewport();
    }
  });