使用传单,我创建了一个L.circleMarker,并且希望它是可拖动的:

var marker = L.circleMarker(new L.LatLng(48.94603, 2.25912), {
    draggable: true
})
.bindPopup('Circle marker draggable')
.addTo(map)
.on('dragstart', onMarkerDragStart)
.on('dragend', onMarkerDragEnd);

不幸的是,当我拖动标记时,没有收到onMarkerDragStart/End函数的任何调用。但是,如果我们使用L.marker而不是L.circleMarker,则可以使用。

那么,有谁知道如何使L.circleMarker可拖动?

最佳答案

我派生了Leaflet.draw插件来支持圆形标记。你可以得到它here

我启用这样的绘图:

drawCircleMarker: function () {
            this.currentHandler = new L.Draw.CircleMarker(this.map, this.drawControl.options.circleMarker);
            this.currentHandler.enable();
        },

您需要连接到 map 的draw:created事件才能获取添加的图层。

要启用拖动,只需采用添加的图层并启用对它的编辑,如下所示:
pathToEdit.editing.enable();

07-26 07:56