MarkerClustererは、WebKit(Chrome and Safari)でのみ機能していません。
-
28-09-2019 - |
質問
これは私を精神的に駆り立てています。
Google Maps V3でMarkerClusterを使用していますが、FFでは正常に動作しますが、ChromeまたはSafariで私(およびクライアント)がキックアップすると、クラスターがありません。
エラーはありません。WebKitで機能していません。
いくつかのメモ:それはいくつかのajaxに搭載されたJSONから来ており、JQueryにあります。
これは、追加の世話をする関数です:
add_clusters: function() {
markers = [];
$.each( interpreters, function ( i, interpreter ){
//maps.add_postcode_marker(i, 'interpreter');
var latLng = new google.maps.LatLng(interpreter.lat, interpreter.lng);
//, map: map
interpreters[i].marker = new google.maps.Marker({ position: latLng });
maps.add_info_box(i, "interpter");
markers.push(interpreters[i].marker);
app.log(interpreters[i].marker);
});
markerCluster = new MarkerClusterer(map, markers);
}
乾杯!
繰り返しになると、Chromeにエラーはありません。表示されていません。
解決
問題は、MakerCluster自体にありました。
特に725行。 jQueryも含まれており、.indexofの動作はブラウザ間でわずかに変更されました。
Firefoxでは、正しい-1を返していました。
しかし、Chromeは未定義に戻っていました。
ライン725を変更することで修正できます。
return this.markers_.indexOf(marker) != -1 && this.markers_.indexOf(marker) != undefined;
他のヒント
一目で、このスニペットの何が悪いのかわかりません。それはすべて私には良さそうです。
使える jsfiddle.net (Firefoxで)機能するデモを含むページを作成して、それを見ることができます/自分で編集してみませんか?
PrimeFacesにも同様の問題がありました。解決策は、応答マイメタイプがあることを確認することでした text/html
.
所属していません StackOverflow