是否可以在Leaflet中设置VertexIcon?

时间:2016-05-26 22:03:09

标签: javascript leaflet mapbox

使用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一样,有没有办法让折线用图标替换所有顶点?

1 个答案:

答案 0 :(得分:1)

在图层组中创建一个功能,您可以使用事件或var来访问元素,但最好使用事件(e),这样您就可以获取当前的多边形并按照您想要的方式进行编辑: enter image description here enter image description here

    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]
          })  
        }
    });
});