在 leaflet-geoman 中绘制圆圈时,有什么方法可以限制圆圈的大小吗?
Is there any way to limit the size of the circle while it is being drawn in leaflet-geoman?
你可能知道,在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或其他插件。
如需快速修复,您可以致电:
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中实现它
你可能知道,在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或其他插件。
如需快速修复,您可以致电:
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中实现它