0

我正在使用传单样式的图层控件、标记群集和标记群集图层支持插件来创建您在图层控件中选中或关闭的叠加层。一切都运行良好,除了我希望在页面首次加载时地图为空白,并且用户可以选择他们想要打开的叠加层。我已经为此尝试了样式化图层控件的内置方法,但它们不起作用。通过反复试验,我发现问题是这样的:

    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 出现,我只希望选中的覆盖出现,并在必要时进行聚类。

4

1 回答 1

0

作为一般规则,您的叠加层将在您使用时立即出现在地图上,myOverlay.addTo(map)或者addTo(group)group本身已经在地图上。

如您所见,如果您避免将markerCluters图层支持添加到地图中,就会发生这种情况。但是,正如您所描述的那样,您的叠加层存在问题。

要克服这些问题,请查看层支持checkIn方法:它“注册”一个叠加层以稍后进行集群,但不会立即将其添加到集群组中。

因此,您仍将图层支持组添加到地图中,但您只需签入叠加层,以便它们现在不会出现在地图上,但在用户稍后选择它们时会出现集群。

于 2017-09-02T02:48:37.533 回答