我正在尝试做一些与this非常相似的事情。但是,我有一个本地定义的geojson geojson
和一个地图map
;我的代码如下:
L.mapbox.featureLayer(geojson).on('ready', function(e) {
var clusterGroup = new L.MarkerClusterGroup({
iconCreateFunction: function(cluster) {
return L.mapbox.marker.icon({
'marker-symbol': cluster.getChildCount(),
});
}
});
e.target.eachLayer(function(layer) {
clusterGroup.addLayer(layer);
});
map.addLayer(clusterGroup);
});
我在控制台中没有错误但我在地图上看不到任何聚类。我错过了什么吗?
答案 0 :(得分:0)
如果通过本地定义',您的意思是geojson
只是一个变量并且不会被加载,此代码的问题在于它仍在使用.on('ready'
打回来。该回调取决于异步加载 - 当Mapbox.js请求外部资源时。由于没有请求,因此不会调用回调。相反,你要写:
var featureLayer = L.mapbox.featureLayer(geojson);
var clusterGroup = new L.MarkerClusterGroup({
iconCreateFunction: function(cluster) {
return L.mapbox.marker.icon({
'marker-symbol': cluster.getChildCount(),
});
}
});
featureLayer.eachLayer(function(layer) {
clusterGroup.addLayer(layer);
});
map.addLayer(clusterGroup);