From 815518df3b82838ed9fbb9e0fd506fa024bfa5d7 Mon Sep 17 00:00:00 2001
From: guanqb <18720758508@163.com>
Date: Thu, 16 Mar 2023 15:52:48 +0800
Subject: [PATCH] 巡逻路线更新删除调整

---
 src/views/activity/components/drawBtnBox.vue |  102 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 65 insertions(+), 37 deletions(-)

diff --git a/src/views/activity/components/drawBtnBox.vue b/src/views/activity/components/drawBtnBox.vue
index 575f2f9..ea14e17 100644
--- a/src/views/activity/components/drawBtnBox.vue
+++ b/src/views/activity/components/drawBtnBox.vue
@@ -141,6 +141,8 @@
             global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, this.viewerLableMove)
             global.viewer.on(global.DC.MouseEventType.LEFT_UP, this.labelUp)
         })
+
+       
     },
 
     methods: {
@@ -403,13 +405,14 @@
                     this.updateSecurityPlot({ id: overlayData.attrParams.id, position: position })
                 })
             } else if (type == "line") {
-                plot.edit(overlayData, (e) => {
+                let lineOverlayData = overlayData.attrParams.lineObj
+                plot.edit(lineOverlayData, (e) => {
                     let position = ''
-                    overlayData._positions.forEach(item => {
+                    lineOverlayData._positions.forEach(item => {
                         position += item._lng + ' ' + item._lat + ','
                     })
                     position = position.slice(0, position.length - 1)
-                    this.updateActivityCar({ id: this.policeIconId, color: this.chooseColor, width: this.lineWidth, type: 1, position: position })
+                    this.updateActivityCar({ id: this.policeIconId, color: this.$parent.chooseColor, width: this.lineWidth, type: 1, position: position },overlayData)
                 })
             }
         },
@@ -427,7 +430,6 @@
             })
             addPlotOverlayData.on(global.DC.MouseEventType.CLICK, this.$parent.reeditArrowClick)
             if(item.type == 6 || item.type == 7 || item.type == 8 ) {
-               console.log(addPlotOverlayData,666);
                let position = item.position.slice(12, item.position.length - 2).split(',')[0].split(' ')
                let pointPosition = new global.DC.Position(Number(position[0]), Number(position[1]))
                addPlotOverlayData.position = {
@@ -481,16 +483,18 @@
         addNewPolice(data,type,carType){
            // 巡逻路线添加
            if(type == 'policecar' && carType == 1) {
-                console.log(data,666665);
                 // 线坐标字符串
                 let positionNewArr = this.$parent.convertPolylineOrPolygonPositionDate(data.position, data.type)
                 positionNewArr = positionNewArr.slice(1,positionNewArr.length - 2)
                  // 范围面坐标串
                 let coords = global.DC.GeoTools.polylineBuffer(positionNewArr, data.width != -1 ? data.width : 100)
                 let positionStr = ''
-                coords.forEach(item => {
-                    positionStr += item[0] + ',' + item[1] + ';'
+                coords.forEach((item,index) => {
+                    if(!(index == coords.length - 1)){
+                        positionStr += item[0] + ',' + item[1] + ';'
+                    }
                 })
+                positionStr = positionStr.slice(0,positionStr.length - 1)
                 // 面颜色
                 let color = ''
                 // 线颜色
@@ -509,41 +513,20 @@
                     'width': 3
                 })
     
-    
-                // let lineObj = new global.DC.Polyline(positionNewArr)
-                // drawLayers.addOverlay(lineObj)
-                // lineObj.setStyle({
-                //     'material': lineColor,
-                //     'width': 3
-                // })
                 data.linePositionStr = positionNewArr
                 data.polygonPositionStr = positionStr
                 data.lineObj = addPoliceIconOverlayData
     
-                // this.$EventBus.$emit('layerPolygonAdd', {
-                //     layerName: 'newCarDrawLineLayers',
-                //     positions: positionStr,
-                //     material: color,
-                //     params: data,
-                //     incident: this.lineOverlayTypeClick
-                // })
                 let areaPolygon = new global.DC.Polygon(positionStr)
-                console.log('positionStr',positionStr);
                 drawLayers.addOverlay(areaPolygon)
                 areaPolygon.setStyle({
-                    'material': lineColor,
+                    'material': color,
+                    'height': 0.01,
                 })
+                addPoliceIconOverlayData.attrParams = data
                 areaPolygon.attrParams = data
-                console.log('areaPolygon',areaPolygon);
-
-                let lineObj = new global.DC.Polyline(positionNewArr)
-                drawLayers.addOverlay(lineObj)
-                lineObj.setStyle({
-                    'material': global.DC.Namespace.Cesium.Color.fromBytes(255, 0, 0, 150),
-                    'width': 30
-                })
-
-           }else{
+                areaPolygon.on(global.DC.MouseEventType.CLICK, this.$parent.lineOverlayTypeClick)
+           } else {
                let positionObj = this.$parent.convertBillboardPositionDate(data, type)
                let positionArr = data.position.slice(7, data.position.length - 2).split(',')[0].split(' ')
                let position = new global.DC.Position(Number(positionArr[0]), Number(positionArr[1]))
@@ -578,7 +561,7 @@
                addPoliceIconOverlayData.on(global.DC.MouseEventType.CLICK, this.$parent.overlayTypeClick)
                // addPoliceIconOverlayData.on(global.DC.MouseEventType.MOUSE_OVER, this.$parent.pointMouseOver)
                addPoliceIconOverlayData.on(global.DC.MouseEventType.MOUSE_OUT, this.$parent.pointMouseOut)
-               }
+           }
         },
 
         // 修改标绘样式
@@ -636,6 +619,53 @@
             if('policemanId' in params){
                 overlay.attrParams.data.policemanId=  params.policemanId
             }
+
+            if('width' in params){
+                let linePosition = ''
+                if('position' in params){
+                    linePosition = params.position.replace(/,/g, ";").replace(/ /g, ",")
+                }else{
+                    linePosition = overlay.attrParams.linePositionStr
+                }
+                let coords = global.DC.GeoTools.polylineBuffer(linePosition, params.width)
+                let positionStr = ''
+                coords.forEach((item,index) => {
+                    if(!(index == coords.length - 1)){
+                        positionStr += item[0] + ',' + item[1] + ';'
+                    }
+                })
+                positionStr = positionStr.slice(0,positionStr.length - 1)
+                // 面颜色
+                let color = ''
+                // 线颜色
+                let lineColor = ''
+                if (params.color == '') {
+                    color = global.DC.Namespace.Cesium.Color.fromBytes(255, 0, 0, 150)
+                } else {
+                    let r = parseInt(params.color.slice(1, 3), 16)
+                    let g = parseInt(params.color.slice(3, 5), 16)
+                    let b = parseInt(params.color.slice(5, 7), 16)
+                    color = global.DC.Namespace.Cesium.Color.fromBytes(r, g, b, 150)
+                    lineColor = global.DC.Namespace.Cesium.Color.fromBytes(r, g, b, 255)
+                }
+                overlay.attrParams.lineObj.setStyle({
+                    "material": lineColor,
+                    'width': 3
+                })
+                overlay.attrParams.linePositionStr = linePosition
+                overlay.attrParams.polygonPositionStr = positionStr
+                overlay.attrParams.color = params.color
+    
+                let areaPolygon = new global.DC.Polygon(positionStr)
+                drawLayers.addOverlay(areaPolygon)
+                areaPolygon.setStyle({
+                    'material': color,
+                    'height': 0.01,
+                })
+                areaPolygon.attrParams = overlay.attrParams
+                areaPolygon.on(global.DC.MouseEventType.CLICK, this.$parent.lineOverlayTypeClick)
+                overlay.remove()
+            }
         },
 
         // 修改活动警车
@@ -655,7 +685,6 @@
                     })
                 }
 
-                // this.$parent.getSecurityCarList(this.showingSecurityId, this.policeSwitch, this.polylineBtnSwitch)
             })
         },
 
@@ -664,18 +693,17 @@
         updateActivityPolice (params,overlay) {
             updateActivityPolice(params).then(res => {
                 if (res.data.success) {
-                    this.editPoliceStyle(params,overlay) 
                     this.$message({
                         message: '保存成功',
                         type: 'success'
                     })
+                    this.editPoliceStyle(params,overlay) 
                 } else {
                     this.$message({
                         message: '保存失败',
                         type: 'error'
                     })
                 }
-                // this.getSecurityPoliceList(this.showingSecurityId, this.policeSwitch)
             })
         },
 

--
Gitblit v1.9.3