使用Leaflet.Editable
插件进行更多自定义编辑,可以在启用编辑时设置L.Polyline
的样式(在我的情况下,单击形状时会启用编辑形状) :
map.on('editable:enable', function (e) {
e.layer.setStyle({color: 'DarkRed'});
});
使用Leaflet.Draw
,一个允许更多“开箱即用”编辑的插件(您添加一个带有某些设置的控件,然后完成剩下的工作),可以为折线顶点设置一个图标你首先创建折线(你必须通过控制选项来完成):
var drawControl = new L.Control.Draw({
draw: {
position: 'topleft',
polyline: {
icon: L.icon({
iconUrl: '/key.png',
iconSize: [38, 95],
}),
shapeOptions: {
color: '#FF0000',
opacity: 1,
weight: 2
}
},
},
draw插件似乎使用图标选项here。
我的问题:与layer.setStyle
一样,有没有办法让折线用图标替换所有顶点?
答案 0 :(得分:1)
在图层组中创建一个功能,您可以使用事件或var来访问元素,但最好使用事件(e),这样您就可以获取当前的多边形并按照您想要的方式进行编辑:
var drawnItems = new L.FeatureGroup().on('draw:editstart', function (e) {
console.log(e);
console.log(drawControl);
drawControl.setDrawingOptions({
polygon: {
icon: L.icon({
iconUrl: '../img/logo.png',
iconSize: [38, 95],
iconAnchor: [22, 94],
popupAnchor: [-3, -76]
})
}
});
});