1

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

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

当我单击以从级别 1 缩小到级别 0 时,gMap UI 不允许按预期进行缩放,但是我的所有 markerCluster 都消失了,当我下降到缩放级别 2 并返回到级别 1 时它们重新出现.

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

任何帮助深表感谢!

4

1 回答 1

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();
    }
  });
于 2013-02-27T00:49:16.307 回答