2

您可能知道,在leaflet-geoman 中有一个名为“drawCircle”的函数,它可以让您绘制一个以中心为轴心并用鼠标扩大半径的圆。对于我的使用,我想在拖动圆圈时限制该功能,因为现在我所做的只是在 pm:create 事件之后检查圆圈是否太大。

这就是我现在正在做的事情:

       if (e.layer.getRadius() > 400) {
            attivaToast("Circle is too big!", "error", "#e74c3c");
            map.removeLayer(e.layer)
            return;
        }

这就是我想要的,但我做不到:

map.on('pm:someCircleDragEvent' e=> checkCircleSize(e));

如果您有任何想法,请提前致谢。

PS:我不想使用 Leaflet.draw 或其他插件。

4

1 回答 1

2

如需快速修复,您可以致电:

map.pm.Draw.Circle._syncCircleRadius = function _syncCircleRadius() {
    var A = this._centerMarker.getLatLng();

    var B = this._hintMarker.getLatLng();

    var distance = A.distanceTo(B);
    if(distance < 500){
        this._layer.setRadius(distance);
    }
  }

这是一个好主意,我将在 Leaflet-geoman 中实现它

于 2020-07-13T09:40:34.383 回答