我正在关注Mapbox库中的markercluster示例,但无法解决我的问题。如果你们看看我的工作示例here,你会注意到这行代码:
https://github.com/jaredsinclair/JTSImageViewController
https://github.com/NYTimes/NYTPhotoViewer
https://github.com/gonzalezreal/Vertigo
我最初的想法是我可以在markercluster featureLayer中放置标记,但我想这是一种错误的方法。有解决方案吗感谢。
之后的示例答案 0 :(得分:2)
您引用的mapbox示例进行AJAX调用以检索GeoJSON数据,因此需要附加一个on" ready"监听器。
在您的情况下,您的GeoJSON数据是在您的脚本中定义的,因此"准备好"不会触发事件(此外,您应该直接使用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