我写了一个自定义的Leaflet控件.这是可以为每一层添加的某种图例.控件本身有一个关闭按钮,可以将其从地图中删除(如弹出窗口).可以通过单击按钮添加控件.我的问题是用户可能会多次向地图添加相同的控件.所以我需要的是测试这个特定的控件是否已经添加到地图中,如果是,请不要再添加它.
我为每个图层创建一个控件,传递一些选项
var control = L.control.customControl(mylayer);
Run Code Online (Sandbox Code Playgroud)
并在按钮单击时将其添加到我的地图
control.addTo(map);
Run Code Online (Sandbox Code Playgroud)
现在假设控件有一个关闭按钮,可能会关闭.现在,如果用户再次单击该按钮,我只想添加控件,如果它还没有在地图上 - 就像这样(hasControl是伪代码,有afaik没有这样的功能)
if(!(map.hasControl(control))) {
control.addTo(map);
}
Run Code Online (Sandbox Code Playgroud)
为简单起见,我做了一个例子,我在这里创建一个缩放控件并在此处添加两次.
leaflet ×1