Leaflet 具有多层的传单聚类(使用MarkerCluster.LayerSupport?)

Leaflet 具有多层的传单聚类(使用MarkerCluster.LayerSupport?),leaflet,markerclusterer,Leaflet,Markerclusterer,好吧,我已经尝试了很多次,但都失败了,我希望能找出我的问题所在 我的很多工作都是基于这篇文章的 我一直无法做到这一点,主要是因为两个错误,但第一个错误显然是首先要克服的障碍: 错误1: 未捕获的语法错误:意外标记正如nathansnider在问题注释中所说,您的传单.markercluster.layersupport src文件的内容不是markercluster.layersupport插件的JavaScript代码,而是显示该文件代码的GitHub HTML页面,即被大量HTML代码包围

好吧,我已经尝试了很多次,但都失败了,我希望能找出我的问题所在

我的很多工作都是基于这篇文章的

我一直无法做到这一点,主要是因为两个错误,但第一个错误显然是首先要克服的障碍:

错误1:


未捕获的语法错误:意外标记正如nathansnider在问题注释中所说,您的
传单.markercluster.layersupport src
文件的内容不是markercluster.layersupport插件的JavaScript代码,而是显示该文件代码的GitHub HTML页面,即被大量HTML代码包围

您只需在此处用原始文件的内容替换文件的内容即可:

演示:


旁注:

如果您只需要Layers控件来处理spool.markercluster,那么还有另一个插件可以做到这一点,而且它要简单得多:(到目前为止,代码为230行,代码为600行)

在您的情况下,您可以这样使用它:

//创建普通标记群集组。
var mcg=L.markerClusterGroup().addTo(map);
//创建子组。
var beerMarkerSub=L.featureGroup.subGroup(mcg).addTo(map);
var wineMarkerSub=L.featureGroup.subGroup(mcg).addTo(map);
//用于图层控制。
var overlayMaps={
“酿酒厂”:beerMarkerSub,
“酿酒厂”:wineMarkerSub
};
//就是这样!不需要办理登机手续。
特定于应用程序的代码,因为您通过AJAX加载GeoJSON数据:

var-beerMarker=L.geoJson(null,beerOptions);//不要添加到地图。
var wineMarker=L.geoJson(null,wineOptions);//同样的故事。
$.getJSON(“breweries.geojson”,函数(数据){
beerMarker.addData(data);//GeoJSON转换。
//然后将所有特征转移到相应的子组中。
beerMarker.eachLayer(函数(层){
图层添加到(beerMarkerSub);
});
});
$.getJSON(“wine.geojson”,函数(数据){
wineMarker.addData(data);//GeoJSON转换。
//然后将所有特征转移到相应的子组中。
wineMarker.eachLayer(函数(层){
图层添加到(wineMarkerSub);
});
});
演示:

披露:我是这些插件的作者


作为脚本包含的
传单.markercluster.layersupport src
文件实际上是所需插件的github页面的HTML文档。使用实际的js文件,我怀疑事情对你来说会更好。哇,我觉得自己很傻。谢谢你,内森,谢谢你。我觉得很尴尬,我加载了整个HTML,而不仅仅是JS。我改为使用传单.FeatureGroup.SubGroup,效果非常好!非常非常感谢您的帮助和您在这些插件上的工作。它们工作得很好,在视觉上很有吸引力。