Есть ли способ ограничить размер круга при его рисовании в листовке-геомане? - PullRequest
2 голосов
/ 13 июля 2020

Как вы, возможно, знаете, в 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 или другие плагины.

1 Ответ

2 голосов
/ 13 июля 2020

Для быстрого исправления вы можете позвонить:

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 ?

...