Mapbox 中的标记集群

Markercluster in Mapbox

我正在关注 Mapbox 库中的 markercluster 示例,但无法解决我的问题。如果你们看一下我的工作示例 here,您会注意到这行代码:

L.mapbox.featureLayer(markerLayer).on('ready', function(e) {

我最初的想法是我可以将标记放在 markercluster featureLayer 中,但我想这是一个错误的方法。任何解决方案?谢谢

示例如下 here

您引用的 mapbox 示例调用 AJAX 来检索 GeoJSON 数据,因此它需要附加一个 on "ready" 侦听器。

在您的情况下,您的 GeoJSON 数据是在脚本中定义的,因此不会触发 "ready" 事件(此外,您应该直接将 L.mapbox.featureLayer 与 GeoJSON 对象一起使用,而不是要素层).

您可以简单地使用 eachLayer method 遍历要素图层中所有创建的标记,并将它们添加到您的标记集群组中。

var clusterGroup = new L.MarkerClusterGroup();

var markerLayer = L.mapbox.featureLayer(markers).eachLayer(function(layer) {
  clusterGroup.addLayer(layer);
});

map.addLayer(clusterGroup);

更新的 Plunker:http://plnkr.co/edit/fN6xYcn1Lg532eLe39IS?p=preview