From f79670d51e41f1e762762c73e423fb658556102b Mon Sep 17 00:00:00 2001 From: jihongshun <1151753686@qq.com> Date: 星期五, 08 八月 2025 10:55:32 +0800 Subject: [PATCH] 模板增加计算两个点距离 --- src/utils/components/init-map.vue | 49 +++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 39 insertions(+), 10 deletions(-) diff --git a/src/utils/components/init-map.vue b/src/utils/components/init-map.vue index 4ecd9e3..e77392c 100644 --- a/src/utils/components/init-map.vue +++ b/src/utils/components/init-map.vue @@ -27,11 +27,12 @@ </div> <!-- 宸︿笅瑙掑�嶇巼淇℃伅 --> - <div class="zoom-info"> - <el-tag type="success">鍊嶇巼: {{ zoomRatio.toFixed(1) }}X</el-tag> - </div> + </div> - + <div class="zoom-info"> + <el-tag type="success">鍊嶇巼: {{ zoomRatio.toFixed(1) }}X</el-tag> + <el-tag type="success">璺濈: {{ betweenDistance.toFixed(1) }}绫�</el-tag> + </div> <!-- botton --> @@ -125,7 +126,7 @@ // let pois = [0, 0,0] let holdingPosition; let rightKeyMove = false -let distance = 100; +let distance = 25; export default { props: { towerUrl: { @@ -133,6 +134,9 @@ default() { return '' } + }, + deviceData: { + type: Object, }, }, data(){ @@ -169,11 +173,13 @@ 14: '14X', 28: '28X', 56: '56X' - } + }, + betweenDistance:0 } }, mounted(){ this.initCesium(); + console.log(this.deviceData) }, computed: { boxWidth() { @@ -381,8 +387,18 @@ "latitude": Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).latitude), "longitude": Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).longitude), } + const lookPoint = Cesium.Cartesian3.fromDegrees(longitude, latitude) + const watchPoint = Cesium.Cartesian3.fromDegrees(Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).longitude), Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).latitude)) + const betweenDistanceWatch = Cesium.Cartesian3.distance(lookPoint, watchPoint) + _this.betweenDistance = betweenDistanceWatch + console.log(lookPoint) + console.log(watchPoint) + // const guanPoint1 = Cesium.Cartesian3.fromDegrees(longitude, latitude) + console.log(viewerM.entities.getById('groundPoiId0')) //濉旂殑璺濈鍜岃娴嬬偣鐨勮窛绂� - const point1 = Cesium.Cartesian3.fromDegrees(0, 0, 50); + console.log(_this.deviceData) + const point1 = Cesium.Cartesian3.fromDegrees(0, 0, _this.deviceData?.modelHeight || 45); + // const point1 = Cesium.Cartesian3.fromDegrees(0, 0, 45); const point2 = Cesium.Cartesian3.fromDegrees(Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).longitude), Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).latitude), Cesium.Cartographic.fromCartesian(tagert).height); // 璁$畻璺濈锛堝崟浣嶏細绫筹級 @@ -527,6 +543,19 @@ } else { groupEntity.position = position; } + //璁$畻涓や釜鐐硅窛绂� + console.log(viewerM.entities) + const groupEntityGround = viewerM.entities.getById("groundPoiId"+(counter-1)); + const groupPosition = groupEntityGround.position.getValue(Cesium.JulianDate.now()); + if (groupPosition) { + const cartographic = Cesium.Cartographic.fromCartesian(groupPosition); + const longitude = Cesium.Math.toDegrees(cartographic.longitude); + const latitude = Cesium.Math.toDegrees(cartographic.latitude); + const point1 = Cesium.Cartesian3.fromDegrees(lon, lat); + const point2 = Cesium.Cartesian3.fromDegrees(longitude, latitude); + const gure = Cesium.Cartesian3.distance(point1, point2) + this.betweenDistance = gure + } } const key = event.key; const lower = key.toLowerCase(); @@ -896,7 +925,7 @@ const heading = Cesium.Math.toDegrees(camera.heading); const pitch = Cesium.Math.toDegrees(camera.pitch); const roll = Cesium.Math.toDegrees(camera.roll); - const point1 = Cesium.Cartesian3.fromDegrees(0, 0, 50); + const point1 = Cesium.Cartesian3.fromDegrees(0, 0, this.deviceData?.modelHeight || 45); const point2 = Cesium.Cartesian3.fromDegrees(Cesium.Math.toDegrees(position.longitude),Cesium.Math.toDegrees(position.latitude),position.height) var camResult = @@ -1107,8 +1136,8 @@ /* 宸︿笅瑙掑�嶇巼鏍囩 */ .zoom-info { position: absolute; - bottom: 20px; - left: 20px; + bottom: 35px; + left: 340px; } </style> -- Gitblit v1.9.3