MarkerClusterer 不能只在 webkit(Chrome 和 Safari)中工作,在 Firefox 中可以吗?

Min*_*ure 1 ajax maps jquery google-maps-api-3 markerclusterer

这让我精神恍惚。

我在谷歌地图 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);
    }
Run Code Online (Sandbox Code Playgroud)

干杯!

重申一下,Chrome 中没有错误,只是没有显示。

Min*_*ure 5

问题出在 makercluster 本身。

特别是第 725 行。Jquery 也包括在内,.indexOf 的行为在浏览器之间略有变化。

在 Firefox 中,它返回了正确的 -1。

但是 chrome 返回未定义。

您可以通过将第 725 行更改为...

return this.markers_.indexOf(marker) != -1 && this.markers_.indexOf(marker) != undefined;
Run Code Online (Sandbox Code Playgroud)