MarkerClustererに問題があります。
私が400マーカーだったとき、クラスターが表示され、すべてが機能しました。しかし、今では600を超えるマーカーがあり、クラスターが表示されません。
Firebugはこのエラーを表示します:
that.map_.mapTypes[that.map_.getMapTypeId()] is undefined markerclusterer.js:304
アイデアはありますか?
ありがとう
MarkerClustererに問題があります。
私が400マーカーだったとき、クラスターが表示され、すべてが機能しました。しかし、今では600を超えるマーカーがあり、クラスターが表示されません。
Firebugはこのエラーを表示します:
that.map_.mapTypes[that.map_.getMapTypeId()] is undefined markerclusterer.js:304
アイデアはありますか?
ありがとう
マーカークラスター.jsを最新のリビジョンに更新します:http: //google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js
そしてあなたの問題は解決されます!
最善の解決策は、Googleによる修正を待つAPI3.5に切り替えることです。
<script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3.5&sensor=true"></script>
グーグルがAPIで何かを変えたようです。クラスタオプションまたはマップオプションのmaxZoom値を手動で16などに設定すると、再び機能します。BingまたはOSMのような他のレイヤーがある場合は、それらのmaxZoom値も設定する必要があります。
var clusterOptions = { styles: ClusterStyles, maxZoom: 16 };
markerClusterer = new MarkerClusterer(map, markersArray, clusterOptions);
マップAPIが変更され、mapsTypes配列にmaxZoomプロパティがないと思います
うん、私も壊れて目が覚めた。
ここでのコメントは機能しました。初期化に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
});
156行目のmarkerclusterer.jsで、コードを次のように変更します。
var maxZoom = that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom;
にvar maxZoom = 18;
クラスタを「クリック」した後の同じエラーメッセージ。
解決:
最新ではなく、具体的なバージョンのGoogleマップを使用します(例: http: //maps.google.com/maps/api/js?v=3.5&sensor=true)
マーカーclustererjsを変更します-固定maxZoomを設定します
私はそれを同じように修正しましたが、わずかに異なります..コードを更新するための最良の方法..このコードは、プロパティを期待される場所に戻します。
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();
}
});