|  |  | @ -11,26 +11,28 @@ import {EChartsType} from "echarts"; | 
			
		
	
		
		
			
				
					
					|  |  |  | import {useLayerStore} from "@/store/layerManagerStore.ts"; |  |  |  | import {useLayerStore} from "@/store/layerManagerStore.ts"; | 
			
		
	
		
		
			
				
					
					|  |  |  | let l_store = useLayerStore() |  |  |  | let l_store = useLayerStore() | 
			
		
	
		
		
			
				
					
					|  |  |  | let myChart: EChartsType = undefined |  |  |  | let myChart: EChartsType = undefined | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | let myChart1: EChartsType = undefined | 
			
		
	
		
		
			
				
					
					|  |  |  | let uavDisArr: number[] = [] |  |  |  | let uavDisArr: number[] = [] | 
			
		
	
		
		
			
				
					
					|  |  |  | let uavHeightArr: number[] = [] |  |  |  | let uavHeightArr: number[] = [] | 
			
		
	
		
		
			
				
					
					|  |  |  | let terrainArr: number[] = [] |  |  |  | let terrainArr: number[] = [] | 
			
		
	
		
		
			
				
					
					|  |  |  | onMounted(()=>{ |  |  |  | onMounted(()=>{ | 
			
		
	
		
		
			
				
					
					|  |  |  |   myChart = echarts.init(document.getElementById('detection-chart')) |  |  |  |   myChart = echarts.init(document.getElementById('detection-chart')) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   myChart1 = echarts.init(document.getElementById('terrain-chart')) | 
			
		
	
		
		
			
				
					
					|  |  |  | }) |  |  |  | }) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | const props = defineProps(['groundHeight']) |  |  |  | const props = defineProps(['groundHeight']) | 
			
		
	
		
		
			
				
					
					|  |  |  | /** |  |  |  | /** | 
			
		
	
		
		
			
				
					
					|  |  |  |  * 绘制地形碰撞检测折线图 |  |  |  |  * 绘制地形碰撞检测折线图,差值间隔为1km | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  * @param height 飞机高度,作为检测线 |  |  |  |  * @param height 飞机高度,作为检测线 | 
			
		
	
		
		
			
				
					
					|  |  |  |  * @param currentPos 当前飞机经纬度,作为原点 |  |  |  |  * @param currentPos 当前飞机经纬度,作为原点 | 
			
		
	
		
		
			
				
					
					|  |  |  |  * @param nextPos 下一航点经纬度,作为目标点 |  |  |  |  * @param nextPos 下一航点经纬度,作为目标点 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  * @param max_dis 预先探测距离 m | 
			
		
	
		
		
			
				
					
					|  |  |  |  */ |  |  |  |  */ | 
			
		
	
		
		
			
				
					
					|  |  |  | const drawDetection = (height: number, currentPos:Cartesian3, nextPos: Cartesian3) => { |  |  |  | const drawTerrain = (height: number, currentPos:Cartesian3, nextPos: Cartesian3, max_dis: number) => { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   // 计算地形剖面 |  |  |  |   // 计算地形剖面 | 
			
		
	
		
		
			
				
					
					|  |  |  |   let res = profileAnalyse(window.viewer, [currentPos, nextPos], 10) |  |  |  |   let res = profileAnalyse(window.viewer, [currentPos, nextPos], max_dis/1000) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   // 弹出图表窗口 |  |  |  |   // 弹出图表窗口 | 
			
		
	
		
		
			
				
					
					|  |  |  |   drawEcharts_CollisionDetection(myChart, res.distanceArray, res.elevationArray, height) |  |  |  |   drawEcharts_CollisionDetection(myChart1, res.distanceArray, res.elevationArray, height, max_dis) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | /** |  |  |  | /** | 
			
		
	
	
		
		
			
				
					|  |  | @ -39,7 +41,7 @@ const drawDetection = (height: number, currentPos:Cartesian3, nextPos: Cartesian | 
			
		
	
		
		
			
				
					
					|  |  |  |  * @param uavDis 飞机当前位置与上一位置的距离 米 |  |  |  |  * @param uavDis 飞机当前位置与上一位置的距离 米 | 
			
		
	
		
		
			
				
					
					|  |  |  |  * @param terrainH 飞机当前地面投影点的地形高度 |  |  |  |  * @param terrainH 飞机当前地面投影点的地形高度 | 
			
		
	
		
		
			
				
					
					|  |  |  |  */ |  |  |  |  */ | 
			
		
	
		
		
			
				
					
					|  |  |  | const drawDetection2 = (uavH: number, uavDis:number, terrainH: number) => { |  |  |  | const drawDetection = (uavH: number, uavDis:number, terrainH: number) => { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   if(uavDisArr.length == 0){ |  |  |  |   if(uavDisArr.length == 0){ | 
			
		
	
		
		
			
				
					
					|  |  |  |     uavDisArr.push(Math.round(uavDis)) |  |  |  |     uavDisArr.push(Math.round(uavDis)) | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |   } | 
			
		
	
	
		
		
			
				
					|  |  | @ -57,24 +59,28 @@ const drawDetection2 = (uavH: number, uavDis:number, terrainH: number) => { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | defineExpose({ |  |  |  | defineExpose({ | 
			
		
	
		
		
			
				
					
					|  |  |  |   drawDetection, |  |  |  |   drawDetection, | 
			
		
	
		
		
			
				
					
					|  |  |  |   drawDetection2, |  |  |  |   drawTerrain, | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | }) |  |  |  | }) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | </script> |  |  |  | </script> | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | <template> |  |  |  | <template> | 
			
		
	
		
		
			
				
					
					|  |  |  |   <n-space> |  |  |  |   <div class="chart" id="detection-chart"></div> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     <span style="font-weight: bolder"> |  |  |  |   <div class="chart" id="terrain-chart"></div> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       飞机对地高度:{{props.groundHeight}} |  |  |  | <!--  <n-grid x-gap="12" :cols="2">--> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     </span> |  |  |  | <!--    <n-gi class="chart">--> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     <div id="detection-chart"></div> |  |  |  | <!--      <div id="detection-chart"></div>--> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   </n-space> |  |  |  | <!--    </n-gi>--> | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | <!--    <n-gi class="chart">--> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | <!--      <div id="terrain-chart"></div>--> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | <!--    </n-gi>--> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | <!--  </n-grid>--> | 
			
		
	
		
		
			
				
					
					|  |  |  | </template> |  |  |  | </template> | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | <style scoped> |  |  |  | <style scoped> | 
			
		
	
		
		
			
				
					
					|  |  |  | #detection-chart{ |  |  |  | .chart{ | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   width: 50rem; |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   height: 15rem; |  |  |  |   height: 15rem; | 
			
		
	
		
		
			
				
					
					|  |  |  |   position: relative; |  |  |  |   width: 33rem; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   margin: 1rem 0 -4rem 0; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | </style> |  |  |  | </style> |