是否可以在Leaflet.Draw中放置大小和数量限制?

whi*_*ler 1 javascript plugins leaflet leaflet.draw

这个问题是针对Leaflet用户(以及使用Leaflet.draw插件的用户)...

我正在使用Leaflet,并希望允许我的用户在地图的任何区域上绘制1 - 且仅1 - 单个多边形.我还想以某种方式限制该多边形的大小(例如限制正方形的边长或覆盖它的区域 - 最好用度数指定,这样无论缩放如何都会转换设置的大小限制水平).

我的最终目标是简单地提取4个方形顶点的坐标或多边形区域覆盖的坐标.

也就是说,我找到了Leaflet.Draw插件.这很棒,但是,我需要将其功能限制在我的要求之内(一次只绘制1个多边形,特别是不能将尺寸绘制得太大).这可能吗?如果是这样,怎么样?

无论是否可能,有没有更好的方法来做这件事?

小智 5

我可以就此问题提出另一种解决方案吗?

我会通过执行以下操作将多边形的数量限制为1:

 map.on('draw:created', function (e) {
    var layer = e.layer;
    if(drawnItems && drawnItems.getLayers().length!==0){
      drawnItems.clearLayers();
    }           
    drawnItems.addLayer(layer);     
 });
Run Code Online (Sandbox Code Playgroud)

我正在听画:创建事件并确定是否已有标记.如果有,我删除该标记并将我的新标记放在所需的位置.因此,总是强制执行用户不再需要删除前一个和一个标记规则的用户点击次数减少一次.

如果您想允许多个标记,则可以删除最旧层的FIFO.

如果您不想自动删除图层,则可以提示用户或忽略该请求.