您可以尝试模拟用户单击传单图层控件,但有一种更简单的方法可以实现您最初描述的内容。
通常通过简单地向地图添加一个图层(例如myTileLayer.addTo(map)),如果该图层是图层控件的基础图层或叠加层的一部分,后者将自动更新其状态(如果您添加了基础图层,单选按钮将被选中相应地;对于覆盖,相应的复选框将被勾选)。
现在我不确定我是否正确理解了您的最后一部分(“当我在地图初始化期间添加新的 L.TileLayer 时,它不会被手动图层控制选择更改覆盖”)。
如果你的意思是你有一个意外的行为,因为你添加的平铺层没有被图层控制改变,这可能是因为你没有重新使用图层控制知道的平铺层:不要使用new L.TileLayer,但是重用基础层或覆盖层之一。
例如:
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);
Run Code Online (Sandbox Code Playgroud)