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