From 6729b6080675bb2ba9e907def2d03c0a5e001e45 Mon Sep 17 00:00:00 2001 From: zh <972939975@qq.com> Date: Fri, 15 Aug 2025 16:19:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B4=B4=E5=9C=B0svg?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E7=82=B9=E9=A2=9C=E8=89=B2=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Obj/Base/GroundSvg/index.js | 78 ++++++++++++++++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/src/Obj/Base/GroundSvg/index.js b/src/Obj/Base/GroundSvg/index.js index 198aa89..5a1e306 100644 --- a/src/Obj/Base/GroundSvg/index.js +++ b/src/Obj/Base/GroundSvg/index.js @@ -1279,6 +1279,9 @@ class GroundSvg extends Base { // 中心点到鼠标的距离 let distance = turf.rhumbDistance(pointC, point2, options); + let flag = false + let flag2 = false + switch (this.pickPoint.id) { case 'svg-control-points_0': angle = bearing2_0 - bearing1 @@ -1290,12 +1293,39 @@ class GroundSvg extends Base { bearingH = (((turf.rhumbBearing(pointC, turf.point(controlPoints[2])) + 360) - this.angle) % 360) angleW = bearing2 - bearingW angleH = bearing2 - bearingH - if ((angleW > -360 && angleW < -90) || (angleW < 360 && angleW > 90)) { angleW = angleW + 180 + flag=true } if ((angleH > -360 && angleH < -90) || (angleH < 360 && angleH > 90)) { angleH = angleH + 180 + flag2=true + } + if(flag && flag2) { + this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#ff0000') + } + else { + if(flag) { + this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#ff0000') + this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#00ff0a') + } + else if(flag2) { + this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#ff0000') + this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#00ff0a') + } + else { + this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#ff0000') + this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#00ff0a') + } } radiansW = (Math.PI / 180) * angleW @@ -1314,6 +1344,12 @@ class GroundSvg extends Base { if ((angleH > -360 && angleH < -90) || (angleH < 360 && angleH > 90)) { angleH = angleH + 180 + this.pointEntityCollection.values[2].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[8].point.color = Cesium.Color.fromCssColorString('#ff0000') + } + else { + this.pointEntityCollection.values[2].point.color = Cesium.Color.fromCssColorString('#ff0000') + this.pointEntityCollection.values[8].point.color = Cesium.Color.fromCssColorString('#00ff0a') } radiansH = (Math.PI / 180) * angleH @@ -1331,9 +1367,37 @@ class GroundSvg extends Base { if ((angleW > -360 && angleW < -90) || (angleW < 360 && angleW > 90)) { angleW = angleW + 180 + flag=true } if ((angleH > -360 && angleH < -90) || (angleH < 360 && angleH > 90)) { angleH = angleH + 180 + flag2=true + } + if(flag && flag2) { + this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#ff0000') + this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#00ff0a') + } + else { + if(flag) { + this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#ff0000') + this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#00ff0a') + } + else if(flag2) { + this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#ff0000') + } + else { + this.pointEntityCollection.values[1].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[3].point.color = Cesium.Color.fromCssColorString('#ff0000') + this.pointEntityCollection.values[7].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[9].point.color = Cesium.Color.fromCssColorString('#00ff0a') + } } radiansW = (Math.PI / 180) * angleW @@ -1351,6 +1415,12 @@ class GroundSvg extends Base { if ((angleW > -360 && angleW < -90) || (angleW < 360 && angleW > 90)) { angleW = angleW + 180 + this.pointEntityCollection.values[4].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[6].point.color = Cesium.Color.fromCssColorString('#ff0000') + } + else { + this.pointEntityCollection.values[6].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[4].point.color = Cesium.Color.fromCssColorString('#ff0000') } radiansW = (Math.PI / 180) * angleW @@ -1381,6 +1451,12 @@ class GroundSvg extends Base { if ((angleW > -360 && angleW < -90) || (angleW < 360 && angleW > 90)) { angleW = angleW + 180 + this.pointEntityCollection.values[6].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[4].point.color = Cesium.Color.fromCssColorString('#ff0000') + } + else { + this.pointEntityCollection.values[4].point.color = Cesium.Color.fromCssColorString('#00ff0a') + this.pointEntityCollection.values[6].point.color = Cesium.Color.fromCssColorString('#ff0000') } radiansW = (Math.PI / 180) * angleW