我必须修改现有的应用程序,其中使用传单图层控件 - 我需要在启动地图时显示基础图层之一。有没有办法,如何从 JS 脚本调用层控件中的某些函数 - 比如 control.select(1) ....?如果没有,如何以与控件相同的方式添加图块图层 - 当我在地图初始化期间添加新的 L.TileLayer 时,它不会被手动图层控件选择更改覆盖?
您可以尝试模拟用户单击传单图层控件,但有一种更简单的方法可以实现您最初描述的效果。
通常只需向地图添加一个图层(例如myTileLayer.addTo(map)
),如果该层是图层控件的基础图层或叠加层,后者将自动更新其状态(如果您添加了基础层,则将相应地选择单选按钮;对于覆盖层,将勾选相应的复选框)。
现在我不确定我是否正确理解了您的最后一部分(“当我在地图初始化期间添加新的 L.TileLayer 时,它不会被手动图层控制选择更改覆盖”)。
如果您的意思是由于图层控件未更改您添加的图块图层而出现意外行为,则可能是由于您没有重复使用图层控件知道的图块图层:请勿使用new L.TileLayer
, but re-use基础层或覆盖层之一。
例如:
var baselayers = {
"Tile Layer 1": L.tileLayer(/* ... */),
"Tile Layer 2": L.tileLayer(/* ... */),
"Tile Layer 3": L.tileLayer(/* ... */)
};
var overlays = {};
L.control.layers(baselayers, overlays).addTo(map);
baseLayers["Tile Layer 1"].addTo(map);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)