|
|
@@ -46,20 +46,9 @@ class DrawRegionMap {
|
|
|
this.setMapPoint(coordinate)
|
|
|
|
|
|
this.kmap.initDraw((e) => {
|
|
|
- // drawend事件:绘制结束后的处理
|
|
|
+ // drawend事件:绘制结束后的处理(支持绘制多个地块)
|
|
|
})
|
|
|
|
|
|
- // 监听drawstart事件,在开始绘制前检查是否已有地块
|
|
|
- this.kmap.draw.on('drawstart', (e) => {
|
|
|
- const features = this.kmap.getLayerFeatures();
|
|
|
- if (features && features.length >= 1) {
|
|
|
- // 提示用户先删除当前地块
|
|
|
- this.onDrawLimit && this.onDrawLimit();
|
|
|
- // 取消本次绘制
|
|
|
- this.kmap.draw.abortDrawing();
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
this.kmap.startDraw()
|
|
|
this.kmap.modifyDraw()
|
|
|
}
|
|
|
@@ -132,14 +121,14 @@ class DrawRegionMap {
|
|
|
this.clickPointLayer.addFeature(point)
|
|
|
}
|
|
|
|
|
|
- // 删除当前地块
|
|
|
+ // 删除当前地块(删除最新绘制的一个地块)
|
|
|
deleteCurrentPolygon() {
|
|
|
- this.kmap.polygonLayer.source.clear();
|
|
|
- }
|
|
|
-
|
|
|
- // 设置绘制限制回调
|
|
|
- setDrawLimitCallback(callback) {
|
|
|
- this.onDrawLimit = callback;
|
|
|
+ if (!this.kmap || !this.kmap.polygonLayer) return;
|
|
|
+ const features = this.kmap.polygonLayer.source.getFeatures();
|
|
|
+ if (features && features.length > 0) {
|
|
|
+ const lastFeature = features[features.length - 1];
|
|
|
+ this.kmap.polygonLayer.source.removeFeature(lastFeature);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|