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 # 算法仓库图片地址 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({ 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