我使用传单样式的图层控件,标记群集和标记群集图层支持插件来创建您在图层控件中检查或关闭的叠加层。 一切都运行得很好,除了我希望在页面首次加载时地图为空白,用户可以选择要打开的覆盖图。我为此尝试了样式图层控件的内置方法,但它们不起作用。 经过反复试验,我发现问题是:
var markerClusters = L.markerClusterGroup.layerSupport().addTo(map);
//monday groups
var mFood = L.layerGroup().addTo(markerClusters);
var mDrink = L.layerGroup().addTo(markerClusters);
var mEntertainment= L.layerGroup().addTo(markerClusters);
如果我没有将markerClusterGroup添加到地图中,则在用户在图层控件中检查叠加层之前,不会显示叠加层。但是,这意味着标记不会聚集。我觉得问题可以通过if..then ..循环来解决,但我不确定如何创建它。 例如,如果选中了叠加层,请将markerClusters添加到地图中。我担心,这样的措辞意味着所有叠加都会被检查/ markerClusters出现,我只希望看到已检查的叠加层,并在必要时进行聚类。
答案 0 :(得分:0)
作为一般规则,只要您使用myOverlay.addTo(map)
或addTo(group)
group
本身已在地图上,您的叠加层就会在地图上。
正如您所知,如果您避免将markerCluters
图层支持添加到地图中,就会发生这种情况。但是,如您所述,您的叠加层存在问题。
要解决这些问题,请查看图层支持checkIn
方法:它"寄存器"稍后要聚集的叠加层,但不立即将其添加到群集组中。
因此,您仍然会将图层支持组添加到地图中,但是您只需检入叠加层,以便它们现在不会显示在地图上,但会在用户稍后选择时显示为群集。