2

MarkerClustererに問題があります。

私が400マーカーだったとき、クラスターが表示され、すべてが機能しました。しかし、今では600を超えるマーカーがあり、クラスターが表示されません。

Firebugはこのエラーを表示します:

that.map_.mapTypes[that.map_.getMapTypeId()] is undefined  markerclusterer.js:304

アイデアはありますか?

ありがとう

4

8 に答える 8

3

マーカークラスター.jsを最新のリビジョンに更新します:http: //google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js

そしてあなたの問題は解決されます!

于 2011-09-21T16:35:46.133 に答える
2

最善の解決策は、Googleによる修正を待つAPI3.5に切り替えることです。
<script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3.5&sensor=true"></script>

于 2011-09-20T10:46:56.223 に答える
1

グーグルがAPIで何かを変えたようです。クラスタオプションまたはマップオプションのmaxZoom値を手動で16などに設定すると、再び機能します。BingまたはOSMのような他のレイヤーがある場合は、それらのmaxZoom値も設定する必要があります。

var clusterOptions = { styles: ClusterStyles, maxZoom: 16 };
markerClusterer = new MarkerClusterer(map, markersArray, clusterOptions);
于 2011-09-20T09:20:03.313 に答える
0

マップAPIが変更され、mapsTypes配列にmaxZoomプロパティがないと思います

于 2011-09-20T09:08:07.393 に答える
0

うん、私も壊れて目が覚めた。

ここでのコメントは機能しました。初期化にmaxZoom:18を追加しました。

     footer_map = new google.maps.Map(document.getElementById('footer_map'), {
      zoom: 1,
      center: new google.maps.LatLng(42, 0),
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      zoomOnClick: true,
      maxZoom: 18
    });
于 2011-09-20T09:35:24.520 に答える
0

156行目のmarkerclusterer.jsで、コードを次のように変更します。

var maxZoom = that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom;

var maxZoom = 18;

于 2011-09-20T11:21:36.947 に答える
0

クラスタを「クリック」した後の同じエラーメッセージ。

解決:

于 2011-09-20T12:00:30.587 に答える
0

私はそれを同じように修正しましたが、わずかに異なります..コードを更新するための最良の方法..このコードは、プロパティを期待される場所に戻します。

    var that = this;
    google.maps.event.addListener(this.map_, 'zoom_changed', function() {
        try{
           var maxZoom = that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom;
        } catch(Error){ maxZoom = that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom = 20; }
        var zoom = that.map_.getZoom();
        if (zoom < 0 || zoom > maxZoom) return;     

        if (that.prevZoom_ != zoom) {
           that.prevZoom_ = that.map_.getZoom();
           that.resetViewport();
        }
});
于 2011-09-21T15:30:49.577 に答える