首页 > 解决方案 > 从地图对象获取图层控件

问题描述

假设我在这样的地图上添加了一个Control.Layers对象:

L.control.layers(baseLayers, overlays).addTo(someMap)

当我后来得到someMap对象时,从中获取图层控制的正确方法是什么?例如,我希望是这样的:

let controls = someMap.getControls();

...然后我大概可以迭代并使用typeof运算符来找到我感兴趣的控件。

我在回答这个问题时发现的最接近的是这个SO answer,它建议扩展L.Control类并覆盖onAdd以便在map对象上存储自定义属性。我很难相信它需要如此复杂。另外,即使采用了这种方法,我应该如何知道我的重写onAdd方法完成了原始图层中的实现所做的一切Control.Layers

标签: leaflet

解决方案


它的实现方式,将控件添加到地图只是让控件对象参考地图对象。

这意味着地图对象不知道它创建的控件(编辑我应该说:添加到地图的控件)

我想没有必要这样做。如果您有一个用例表明这是一个问题,您应该打开一个问题

所以,恐怕你已经得到的答案是正确的。


推荐阅读