From fb39a7bb69cc55d2e1ce61d47e0677aa40540f95 Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Fri, 30 Jan 2026 16:20:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue | 37 +++++++++++++++++++++----------------
1 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue b/applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue
index 064f7ad..50e15ee 100644
--- a/applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue
+++ b/applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue
@@ -120,6 +120,7 @@
import axios from 'axios'
import { saveOperationLog } from '@ztzf/apis'
import { useRoute } from 'vue-router'
+import positionIcon from '@/assets/images/areaManage/positionIcon.png'
const initForm = () => ({
address: '', // 位置
@@ -185,7 +186,7 @@
let redPointEntity
let leftClickBound = false
const labelParams = {
- font: '16px',
+ font: '18px',
fillColor: Cesium.Color.WHITE, // 文字颜色:白色
backgroundColor: Cesium.Color.BLACK, //背景颜色
backgroundPadding: new Cesium.Cartesian2(5, 5), // 水平/垂直内边距(像素)
@@ -200,17 +201,17 @@
}
function LeftClickEvent(click) {
- const pos = click.position // Cartesian2 屏幕坐标
- // 屏幕坐标 -> 椭球面坐标(不考虑地形/模型)
- const cartesian3 = viewer.camera.pickEllipsoid(pos, viewer.scene.globe.ellipsoid)
- if (!cartesian3) {
- return { longitude: 112, latitude: 23 }
+ const pos = click.position
+ // 优先使用 pickPosition 获取贴地坐标(包含地形高度)
+ let cartesian3 = viewer.scene.pickPosition(pos)
+ // 如果 pickPosition 失败,回退到 pickEllipsoid
+ if (!cartesian3 || !Cesium.defined(cartesian3)) {
+ cartesian3 = viewer.camera.pickEllipsoid(pos, viewer.scene.globe.ellipsoid)
}
- // 椭球面坐标 -> 经纬度
+ if (!cartesian3) return
const carto = Cesium.Cartographic.fromCartesian(cartesian3)
const longitude = Cesium.Math.toDegrees(carto.longitude)
const latitude = Cesium.Math.toDegrees(carto.latitude)
- // 直接更新 formData
formData.value.longitude = _.round(longitude, 6)
formData.value.latitude = _.round(latitude, 6)
getLocationName(longitude, latitude)
@@ -219,14 +220,16 @@
if (!redPointEntity) {
redPointEntity = viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(longitude, latitude),
- point: {
- color: Cesium.Color.RED,
- pixelSize: 10,
+ billboard: {
+ image: positionIcon,
+ width: 20,
+ height: 20,
+ verticalOrigin: Cesium.VerticalOrigin.CENTER,
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
},
label: {
text: `${longitude.toFixed(6)}, ${latitude.toFixed(6)}`,
- ...labelParams
+ ...labelParams,
},
})
} else {
@@ -240,14 +243,16 @@
if (!redPointEntity) {
redPointEntity = viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(longitude, latitude),
- point: {
- color: Cesium.Color.RED,
- pixelSize: 10,
+ billboard: {
+ image: positionIcon,
+ width: 20,
+ height: 20,
+ verticalOrigin: Cesium.VerticalOrigin.CENTER,
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
},
label: {
text: `${longitude.toFixed(6)}, ${latitude.toFixed(6)}`,
- ...labelParams
+ ...labelParams,
},
})
} else {
--
Gitblit v1.9.3