|  |  | @ -5,9 +5,10 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | --> |  |  |  | --> | 
			
		
	
		
		
			
				
					
					|  |  |  | <script setup lang="ts"> |  |  |  | <script setup lang="ts"> | 
			
		
	
		
		
			
				
					
					|  |  |  | import { Angle } from '@/utils/map/angle.ts' |  |  |  | import { Angle } from '@/utils/map/angle.ts' | 
			
		
	
		
		
			
				
					
					|  |  |  | import {ScreenSpaceEventHandler, Math, ScreenSpaceEventType} from 'cesium' |  |  |  | import {ScreenSpaceEventHandler, Math, ScreenSpaceEventType, Cartesian3, Cartographic} from 'cesium' | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | import {onMounted, ref} from "vue"; |  |  |  | import {onMounted, ref} from "vue"; | 
			
		
	
		
		
			
				
					
					|  |  |  | import {cartesian2ToCartesian3} from "@/utils/map/coordinate.ts"; |  |  |  | import {cartesian2ToCartesian3} from "@/utils/map/coordinate.ts"; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import {elevationProfile} from "@/utils/map/SpatialAnalysis.ts"; | 
			
		
	
		
		
			
				
					
					|  |  |  | let nowLatStr: string, nowLonStr: string |  |  |  | let nowLatStr: string, nowLonStr: string | 
			
		
	
		
		
			
				
					
					|  |  |  | let lonlatStr = ref('') |  |  |  | let lonlatStr = ref('') | 
			
		
	
		
		
			
				
					
					|  |  |  | let isDecimal = ref(true) |  |  |  | let isDecimal = ref(true) | 
			
		
	
	
		
		
			
				
					|  |  | @ -29,7 +30,7 @@ onMounted(()=>{ | 
			
		
	
		
		
			
				
					
					|  |  |  |         let camera_alt = (_viewer.camera.positionCartographic.height / 1000) // 视高 |  |  |  |         let camera_alt = (_viewer.camera.positionCartographic.height / 1000) // 视高 | 
			
		
	
		
		
			
				
					
					|  |  |  |         // 相机低于250、俯仰角小于-80度时才计算海拔高度(否则误差大) |  |  |  |         // 相机低于250、俯仰角小于-80度时才计算海拔高度(否则误差大) | 
			
		
	
		
		
			
				
					
					|  |  |  |         let needElevation: boolean = camera_alt < 250 && (_viewer.camera.pitch < -(Math.PI/180)*80) |  |  |  |         let needElevation: boolean = camera_alt < 250 && (_viewer.camera.pitch < -(Math.PI/180)*80) | 
			
		
	
		
		
			
				
					
					|  |  |  |         let elevStr = needElevation? _viewer.scene.globe.getHeight(cartographic)?.toFixed(2)+'m'?? '' : '高度过高' |  |  |  |         let elevStr = needElevation? Cartographic.fromCartesian(position).height.toFixed(2)+'m'?? '' : '高度过高' | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(isDecimal.value) {   //如果是十进制度 |  |  |  |         if(isDecimal.value) {   //如果是十进制度 | 
			
		
	
		
		
			
				
					
					|  |  |  |           lonlatStr.value = `经度: ${nowLonStr}°, 纬度: ${nowLatStr}°, 高度: ${elevStr}` |  |  |  |           lonlatStr.value = `经度: ${nowLonStr}°, 纬度: ${nowLatStr}°, 高度: ${elevStr}` | 
			
		
	
	
		
		
			
				
					|  |  | @ -45,7 +46,6 @@ onMounted(()=>{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | function lonlatClick() { |  |  |  | function lonlatClick() { | 
			
		
	
		
		
			
				
					
					|  |  |  |   let elevStr = lonlatStr.value.split('高度')[1] |  |  |  |   let elevStr = lonlatStr.value.split('高度')[1] | 
			
		
	
		
		
			
				
					
					|  |  |  |   console.log(elevStr) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   if(isDecimal.value){ |  |  |  |   if(isDecimal.value){ | 
			
		
	
		
		
			
				
					
					|  |  |  |     lonlatStr.value = `经度: ${Angle.DecimalDegree2DMS(nowLonStr)}, 纬度: ${Angle.DecimalDegree2DMS(nowLatStr)}, 高度` + elevStr |  |  |  |     lonlatStr.value = `经度: ${Angle.DecimalDegree2DMS(nowLonStr)}, 纬度: ${Angle.DecimalDegree2DMS(nowLatStr)}, 高度` + elevStr | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |   } | 
			
		
	
	
		
		
			
				
					|  |  | @ -53,6 +53,7 @@ function lonlatClick() { | 
			
		
	
		
		
			
				
					
					|  |  |  |     lonlatStr.value = `经度: ${nowLonStr}°, 纬度: ${nowLatStr}°, 高度` + elevStr |  |  |  |     lonlatStr.value = `经度: ${nowLonStr}°, 纬度: ${nowLatStr}°, 高度` + elevStr | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  |   isDecimal.value = !isDecimal.value |  |  |  |   isDecimal.value = !isDecimal.value | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   elevationProfile(window.viewer, Cartesian3.fromDegrees(119.0,30.05),Cartesian3.fromDegrees(119.05,30.0),500) | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | </script> |  |  |  | </script> | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |