[英]Is it possible to add custom HTML to leaflet Layer Groups and Layers Control
[英]How to add layers and update layer control dynamically : leaflet
我正在使用lealflet api,用户可以在其中绘制形状以映射(图像)...
最初使用imageoverlay为基础地图添加了图层控件(处理1层)。
我在页面上添加了一个id为“ newLyer”的按钮,其中click事件处理了新图层的创建.....即用户可以创建新图层并更新图层控件(现在正在处理2层)。
我已经使用了几种方法来创建图层并添加到控件中,但是失败了。
向layerGroup添加新图层
var layerGroup = new L.LayerGroup(),
imageOverlayUrl = 'aa.jpg',
// New imageoverlay added to the layergroup
imageOverlay = new L.ImageOverlay(imageOverlayUrl, bounds).addTo(layerGroup),
// New featuregroup added to the layergroup
featureGroup = new L.FeatureGroup().addTo(layerGroup);
我需要在其中添加控件的LayerControl(如果我正确的话)
var layerControl = new L.control.layers({
'Main': layerGroup,
//here i need to add new layer control
}, null, { collapsed: false }).addTo(map);
到目前为止具有静态代码的OnClick函数,将在单击时执行
$('#newLayer').click(function addNewLayer() {
// Second layergroup not added to the map yet
var layerGroupNew = new L.LayerGroup(),
imageOverlayUrlNew = 'bb.png',
// New imageoverlay added to the second layergroup
imageOverlayNew = new L.imageOverlay(imageOverlayUrlNew, bounds).addTo(layerGroup2),
// New featuregroup added to the second layergroup
featureGroupNew = new L.FeatureGroup().addTo(layerGroupNew);
});
简而言之
最初,我有一个带有其控件的图层,现在onclick函数会创建一个新图层,该图层将添加到地图中,但是我如何将该图层添加到layerControl中。
如果有人对如何进行此类操作有任何想法,请提供帮助,或者,任何形式的帮助或参考都将不胜感激。
如果您查看L.Control.Layers
的文档:
http://leafletjs.com/reference.html#control-layers
您将看到L.Control.Layers
具有addBaseLayer
方法:
http://leafletjs.com/reference.html#control-layers-addbaselayer
将具有给定名称的基础层(单选按钮项)添加到控件。
因此,您可以执行以下操作:
layerControl.addBaseLayer(newBaseLayer, 'My New BaseLayer');
而且你很好。 如您所见,如果您要查看参考资料 ,则可以免去发布此问题的麻烦。 宣传单据非常详细。 通过两次完整阅读文档,我已经了解了有关Leaflet的大部分知识。 祝您项目顺利,加油!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.