lxf 1 неделя назад
Родитель
Сommit
5baa546bbf

+ 0 - 5
src/views/old_mini/interactionList/drawRegion.vue

@@ -38,11 +38,6 @@ onMounted(() => {
     type.value = route.query.type
     const point = route.query.mapCenter || "POINT (113.6142086995688 23.585836479509055)"
     drawRegionMap.initMap(point, mapContainer.value);
-    
-    // 设置绘制限制回调
-    drawRegionMap.setDrawLimitCallback(() => {
-        ElMessage.warning("请先删除当前地块再重新勾画");
-    });
 });
 
 onActivated(() => {

+ 8 - 19
src/views/old_mini/interactionList/map/drawRegionMap.js

@@ -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);
+        }
     }
 }