1

我在Google Maps API v3中使用了MarkerClusterer的最新版本,我想我发现了一个错误!MarkerClusterer缩放问题

我的谷歌地图minZoom设置为1.从级别1缩小到任何级别,并备份到1就好了。当我尝试从级别1缩小到级别0时,会看到该错误。

当我单击以从级别1缩小到级别0时,gMap UI不允许按照预期的方式缩放,但是所有我的markerClusters消失,当我向下缩放级别2并返回到级别1时,它们重新出现。

我已经在谷歌地图API v3的Google Group页面上发布了这个消息,但到目前为止没有响应截至今天为止)。

任何帮助非常感谢!

+1

markerClusterer不是地图,Javascript的API的一部分,您应该通过https://code.google.com/p/google-maps-utility-library-v3/issues/entry – 2013-02-26 22:33:08

+0

报告该错误。谢谢,我会在那里发表评论:) – Auero 2013-03-01 08:55:24

回答

3

它更多的地图,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(); 
    } 
    }); 
+0

嘿Dr Molle,您的解决方案作品!但由于markerClusterer中的其他一些错误,我不得不升级到markerclustererPlus。我使用的是v2.0.9 [link](http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.9/src/markerclusterer.js),并且存在相同的错误那里。我试图将您的解决方案合并到markerclustererPlus中,但未成功。你可以看看这个,让我知道如何解决这个bug? [(line 723)](http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.9/src/markerclusterer.js) – Auero 2013-03-01 08:57:23

+0

我指着谷歌地图v3。 5,刚刚更新,它解决了markerClustererPlus的问题!谢谢你的帮助 :) – Auero 2013-03-01 10:36:03