Leaflet MapBox-添加可通过图层控件单击的群集组

Leaflet MapBox-添加可通过图层控件单击的群集组,leaflet,mapbox,Leaflet,Mapbox,我还在学习,有点困了。我可能想一下子做很多事情。我有一个MapBox地图,它有一个从MapBox网站上的示例中选取的可点击的图层菜单。我还有一个MarkerClusterGroup,它也可以工作,并且在地图上始终可见。有没有一种方法可以让MarkerClusterGroup像var overlays={ 下面是我认为需要帮助的代码: var layers = { Streets: L.mapbox.tileLayer('mapbox.streets').addTo(map), Sat

我还在学习,有点困了。我可能想一下子做很多事情。我有一个MapBox地图,它有一个从MapBox网站上的示例中选取的可点击的图层菜单。我还有一个MarkerClusterGroup,它也可以工作,并且在地图上始终可见。有没有一种方法可以让MarkerClusterGroup像var overlays={

下面是我认为需要帮助的代码:

  var layers = {
  Streets: L.mapbox.tileLayer('mapbox.streets').addTo(map),
  Satellite: L.mapbox.tileLayer('mapbox.satellite'),
  Light: L.mapbox.tileLayer('mapbox.light'),
  };

  var overlays = {
  DataA: L.mapbox.featureLayer().loadURL('/data/ctsnew.geojson'),
  DataB: L.mapbox.featureLayer().loadURL('/data/selectZipcodes.geojson'),
  };

// Since featureLayer is an asynchronous method, we use the `.on('ready'`
// call to only use its marker data once we know it is actually loaded.

   Markers: L.mapbox.featureLayer('examples.map-h61e8o8e').on('ready', function(e) {
// The clusterGroup gets each marker in the group added to it
// once loaded, and then is added to the map

   var clusterGroup = new L.MarkerClusterGroup();
   e.target.eachLayer(function(layer) {
       clusterGroup.addLayer(layer);
   });

   map.addLayer(clusterGroup);
   });

可能是误用括号之类的简单问题。请提前感谢。

您必须在
覆盖对象中包含标记群集组。例如,您可以在定义
覆盖对象之前实例化它,即使您的群集组目前为空

然后在它下载数据后填充它

var层={
街道:L.mapbox.Tillelayer('mapbox.Streets').addTo(地图),
卫星:L.mapbox.tileLayer('mapbox.Satellite'),
灯光:L.mapbox.tileLayer('mapbox.Light'),
};
var clusterGroup=L.markerClusterGroup();
变量覆盖={
DataA:L.mapbox.featureLayer().loadURL('/data/ctsnew.geojson'),
DataB:L.mapbox.featureLayer().loadURL('/data/selectZipcodes.geojson'),
标记:clusterGroup
};
//由于featureLayer是一种异步方法,因此我们使用“.on('ready'`
//调用仅在我们知道标记数据已实际加载后使用它。
L.mapbox.featureLayer('examples.map-h61e8o8e')。打开('ready',函数(e){
//clusterGroup获取添加到它的组中的每个标记
//一旦加载,然后添加到地图
e、 target.eachLayer(函数(层){
clusterGroup.addLayer(层);
});
map.addLayer(clusterGroup);//如果要在集群组下载数据后自动将其添加到映射中,请使用该行。
});