1

Google Maps API v3 で最新バージョンの MarkerClusterer を使用していますが、バグが見つかったようです。

私のGoogleマップのminZoomは1に設定されています。レベル1から任意のレベルにズームし、1に戻すことは問題ありません。レベル 1 からレベル 0 にズームアウトしようとするとバグが発生します。

クリックしてレベル 1 からレベル 0 にズームアウトすると、gMap UI は意図したとおりにズームを許可しませんが、すべての markerClusters が消え、ズーム レベル 2 に下がってレベル 1 に戻ると再び表示されます.

これを Google Maps API v3 の Google グループ ページに投稿しましたが、これまでに応答がありません (今日の時点で 1 週間以上経過しています)。

どんな助けでも大歓迎です!

4

1 に答える 1

3

これは、markerClusterer のバグというよりは Maps-API のバグですが、markerClusterer.js で修正できます

ズームを0に(しようとして)設定したときにどこをクリックしたのかわかりません(ズームコントロールを使用すると問題は発生しません)が、使用してズームを設定すると発生しますmap.setZoom(0)

問題: API はズーム 0 を報告しますが、ズームは 1 (最小ズーム) に設定されるため、これは正しくありません。

修正:
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 に答える