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
我正在关注 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