From e4bc365cdca026cf7c94717eb5fad3b80cce1567 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 22 Jan 2026 16:00:24 +0800
Subject: [PATCH] feat:添加地形及报错处理

---
 applications/drone-command/src/components/map-container/device-map-container.vue |    4 +-
 applications/drone-command/src/utils/cesium/publicCesium.js                      |   52 ++++----------------------
 applications/drone-command/env/.env.development                                  |    6 +-
 3 files changed, 13 insertions(+), 49 deletions(-)

diff --git a/applications/drone-command/env/.env.development b/applications/drone-command/env/.env.development
index 35a5ad4..368f458 100644
--- a/applications/drone-command/env/.env.development
+++ b/applications/drone-command/env/.env.development
@@ -2,7 +2,7 @@
  # @Author       : yuan
  # @Date         : 2026-01-07 14:58:30
  # @LastEditors  : yuan
- # @LastEditTime : 2026-01-17 10:15:51
+ # @LastEditTime : 2026-01-22 15:51:00
  # @FilePath     : \applications\drone-command\env\.env.development
  # @Description  : 
  # Copyright 2026 OBKoro1, All Rights Reserved. 
@@ -30,8 +30,8 @@
 # 航线文件地址
 VITE_APP_AIRLINE_URL = https://wrj.shuixiongit.com/minio/cloud-bucket
 
-# 图片存放地址
-VITE_APP_TERRAIN_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_terrain/
+# 地形存放
+VITE_APP_TERRAIN_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_c_uas/
 # 行政区划存放地址
 VITE_APP_REGION_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_region
 # 算法仓库图片地址
diff --git a/applications/drone-command/src/components/map-container/device-map-container.vue b/applications/drone-command/src/components/map-container/device-map-container.vue
index 46199a1..d34c53a 100644
--- a/applications/drone-command/src/components/map-container/device-map-container.vue
+++ b/applications/drone-command/src/components/map-container/device-map-container.vue
@@ -1,7 +1,7 @@
 <template>
 	<div class="map-shell">
 		<CommonCesiumMap ref="mapRef" class="command-cesium map-container" :dom-id="props.containerId" :active="true"
-			:flat-mode="false" :terrain="false" :layer-mode="4" :contour="false" :boundary="false"
+			:flat-mode="false" :terrain="true" :layer-mode="4" :contour="false" :boundary="false"
 			:show-admin-boundary="true" :zoom-to-boundary="true" :enable-stage-emit="true" :cluster-height="100000"
 			@ready="handleMapReady" @stage-change="handleStageChange" />
 		<div v-if="props.showLayerControl" class="layer-control-root" :class="{ collapsed: props.leftCollapsed }">
@@ -352,7 +352,7 @@
 	devices.forEach((item, index) => {
 		const position = getDevicePosition(item)
 		if (!position) return
-		const entityId = `online-device-${item.id ?? index}`
+		const entityId = `online-device-${item.id ?? index}-${index}`
 		deviceEntityIds.add(entityId)
 		addDeviceRings(position, entityId, detailVisible.value)
 		const entity = viewer.entities.add({
diff --git a/applications/drone-command/src/utils/cesium/publicCesium.js b/applications/drone-command/src/utils/cesium/publicCesium.js
index 7fb65d2..94c734e 100644
--- a/applications/drone-command/src/utils/cesium/publicCesium.js
+++ b/applications/drone-command/src/utils/cesium/publicCesium.js
@@ -178,50 +178,14 @@
 		this.viewer?.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK) // 禁用双击
 
 		if (terrain) {
-			try {
-				const noTerrainMechanism = ['1962779164650135554']
-				if (noTerrainMechanism.includes(store.state.user.userInfo?.deptId)) {
-					// 使用Cesium World Terrain
-					Cesium.createWorldTerrainAsync({
-						requestWaterMask: false,    // 请求水域效果
-						requestVertexNormals: true // 请求光照和地形法线
-					}).then(terrainProvider => {
-						this.viewer.terrainProvider = terrainProvider
-						terrainLoadCallback?.()
-					})
-				} else {
-					/*// 正则:第一位非0,第二位任意数字,后10位都是0
-					const re = /^[1-9]\d0{10}$/
-
-					let result = null
-
-					// 1️⃣先判断 areaCode
-					if (re.test(store.state.user.userInfo.detail.areaCode)) {
-						result = store.state.user.userInfo.detail.areaCode.slice(0, 6)
-					} else {
-						// 2️⃣如果不满足,从 ancestors 里找
-						const matchedItems = store.state.user.userInfo.detail.ancestors
-							.split(',')
-							.filter(item => re.test(item)) // 过滤出符合条件的
-
-						// 取第一个符合条件的前6位(可以改成 last one 看需求)
-						if (matchedItems.length > 0) {
-							result = matchedItems[0].slice(0, 6)
-						}
-					}
-
-					// 使用公司地形
-					Cesium.CesiumTerrainProvider.fromUrl(`${import.meta.env.VITE_APP_TERRAIN_URL}${result}`, {
-						requestVertexNormals: true, // 启用地形法线增强立体感
-						requestWaterMask: true, // 启用水体遮罩效果
-					}).then(terrainProvider => {
-						this.viewer.terrainProvider = terrainProvider
-						terrainLoadCallback?.()
-					})*/
-				}
-			} catch (error) {
-				console.error('地形加载失败:', error)
-			}
+			// 使用公司地形
+			Cesium.CesiumTerrainProvider.fromUrl(`${import.meta.env.VITE_APP_TERRAIN_URL}ja_terrain`, {
+				requestVertexNormals: true, // 启用地形法线增强立体感
+				requestWaterMask: true, // 启用水体遮罩效果
+			}).then(terrainProvider => {
+				this.viewer.terrainProvider = terrainProvider
+				terrainLoadCallback?.()
+			})
 		}
 
 		this.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 4500000

--
Gitblit v1.9.3