绘图后marker添加右键菜单

0 投票

自定义marker点可以通过这种方式添加。

绘图后,右键菜单怎么添加?

var marker_option = {
            draggable:true,
            contextmenu: true,
            contextmenuWidth: 140,
            contextmenuItems: [{
                text: '右键菜单01',
                callback: showMnuItem01
            }]
        }
        var marker_01 = new L.Marker(e.latlng, marker_option);

7月 13 分类:  39次浏览 | 用户: pluto_321 (5 分)

1个回答

0 投票
您好,经测试发现使用了引入了“leaflet.draw”会导致marker的右键事件不能触发使用,可以通过地图点击事件获取到这个点的坐标然后,然后再把这个点坐标放入new L.Marker(e.latlng, marker_option)中
7月 13 用户: johnJJ 才高八斗 (842 分)
// 监听标注绘制
    map.on(L.Draw.Event.CREATED, function (e) {
        var type = e.layerType,
            layer = e.layer;
        console.log(layer);
        if (type === 'marker') {
          

            var marker_option = {
                draggable:true, // 拖拽
                //repeatMode: !1,
               // zIndexOffset: 2e3,
                contextmenu: true, // 右键菜单
                contextmenuWidth: 140,
                contextmenuItems: [{
                    text: '修改标注',
                    callback: modify_Title
                },{
                    text: '删除',
                    callback: deleteMarker
                }]
            }
            var marker = new L.Marker(layer._latlng, marker_option);
            marker.bindPopup("<b>Hello world!</b><br />I am a popup.");
           // map.addLayer(marker);
            editableLayers.addLayer(marker);
            return;
           
        }
        // 绘制标注
        editableLayers.addLayer(layer);
    });

通过这种方式可以了

...