|  |  |  | @ -8,7 +8,7 @@ import {nextTick, ref, watch} from "vue"; | 
		
	
		
			
				|  |  |  |  | import { | 
		
	
		
			
				|  |  |  |  |   drawEchartsProfileAnalyse, | 
		
	
		
			
				|  |  |  |  |   drawEchartsVisibility, elevationProfile, | 
		
	
		
			
				|  |  |  |  |   profileAnalyse | 
		
	
		
			
				|  |  |  |  |   profileAnalyse, visibilityAnalyse2 | 
		
	
		
			
				|  |  |  |  | } from "@/utils/map/SpatialAnalysis.ts"; | 
		
	
		
			
				|  |  |  |  | import {useStaticStore} from "@/store/staticOptions"; | 
		
	
		
			
				|  |  |  |  | import {useMessage} from "naive-ui"; | 
		
	
	
		
			
				
					|  |  |  | @ -23,8 +23,9 @@ let formParams = ref({ | 
		
	
		
			
				|  |  |  |  |   interval: 100, | 
		
	
		
			
				|  |  |  |  |   startClearance: 40,   //起点离地高度 | 
		
	
		
			
				|  |  |  |  |   endClearance: 10,   //起点离地高度 | 
		
	
		
			
				|  |  |  |  |   curve: true | 
		
	
		
			
				|  |  |  |  | }) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | let isVisible = ref(false) | 
		
	
		
			
				|  |  |  |  | // 关闭地形分析结果窗口德回调 | 
		
	
		
			
				|  |  |  |  | const handleCloseProfile = ()=>{ | 
		
	
		
			
				|  |  |  |  |   //移除图形元素 | 
		
	
	
		
			
				
					|  |  |  | @ -53,12 +54,15 @@ function executeTopographicAnalyse(polyline:Cartesian3[]) { | 
		
	
		
			
				|  |  |  |  |     let res = profileAnalyse(window.viewer, polyline,formParams.value.interval) | 
		
	
		
			
				|  |  |  |  |     // 计算视线起始点距离和高度 | 
		
	
		
			
				|  |  |  |  |     let eyeRes = elevationProfile(window.viewer,polyline[0],polyline[1],-1) | 
		
	
		
			
				|  |  |  |  |     eyeRes.elevationArray[0] += Number(formParams.value.startClearance) | 
		
	
		
			
				|  |  |  |  |     eyeRes.elevationArray[1] += Number(formParams.value.endClearance) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     // 弹出图表窗口 | 
		
	
		
			
				|  |  |  |  |     showResultModal.value = true | 
		
	
		
			
				|  |  |  |  |     nextTick(()=>{ | 
		
	
		
			
				|  |  |  |  |       drawEchartsVisibility(res.distanceArray, res.elevationArray, eyeRes.elevationArray[0],eyeRes.elevationArray[1]) | 
		
	
		
			
				|  |  |  |  |       drawEchartsVisibility(res.distanceArray, res.elevationArray, | 
		
	
		
			
				|  |  |  |  |           eyeRes.elevationArray[0]+Number(formParams.value.startClearance), | 
		
	
		
			
				|  |  |  |  |           eyeRes.elevationArray[1]+Number(formParams.value.endClearance)) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |       isVisible.value = visibilityAnalyse2(res,true, Number(formParams.value.startClearance),Number(formParams.value.endClearance)) | 
		
	
		
			
				|  |  |  |  |     }) | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -121,6 +125,11 @@ const afterCoordInput = ()=> { | 
		
	
		
			
				|  |  |  |  |            preset="card" draggable :mask-closable="false" :on-after-leave="handleCloseProfile" | 
		
	
		
			
				|  |  |  |  |            :title="store.analysisVars.analysisType==2? '通视分析结果':'剖面分析结果'"> | 
		
	
		
			
				|  |  |  |  |     <template v-slot:default> | 
		
	
		
			
				|  |  |  |  |       <n-row justify-content="center" :class="isVisible? 'ResGreen':'ResRed'" | 
		
	
		
			
				|  |  |  |  |              v-show="store.analysisVars.analysisType==2"> | 
		
	
		
			
				|  |  |  |  |         <span style="font-size: larger;font-weight: bolder"> | 
		
	
		
			
				|  |  |  |  |         {{isVisible? '通视' : '不通视'}}</span> | 
		
	
		
			
				|  |  |  |  |       </n-row> | 
		
	
		
			
				|  |  |  |  |       <div id="profileEChart"></div> | 
		
	
		
			
				|  |  |  |  |     </template> | 
		
	
		
			
				|  |  |  |  |   </n-modal> | 
		
	
	
		
			
				
					|  |  |  | @ -154,6 +163,10 @@ const afterCoordInput = ()=> { | 
		
	
		
			
				|  |  |  |  |               </template> | 
		
	
		
			
				|  |  |  |  |             </n-input> | 
		
	
		
			
				|  |  |  |  |           </n-form-item> | 
		
	
		
			
				|  |  |  |  |           <n-form-item label="考虑地球曲率" path="numberParam" v-show="store.analysisVars.analysisType==2"> | 
		
	
		
			
				|  |  |  |  |             <n-switch round v-model:value="formParams.curve"> | 
		
	
		
			
				|  |  |  |  |             </n-switch> | 
		
	
		
			
				|  |  |  |  |           </n-form-item> | 
		
	
		
			
				|  |  |  |  |         </n-form> | 
		
	
		
			
				|  |  |  |  |       </n-space> | 
		
	
		
			
				|  |  |  |  |       <n-row justify-content="space-around"> | 
		
	
	
		
			
				
					|  |  |  | @ -193,4 +206,10 @@ const afterCoordInput = ()=> { | 
		
	
		
			
				|  |  |  |  |   position: relative; | 
		
	
		
			
				|  |  |  |  |   margin-top: -2rem; | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | .ResGreen{ | 
		
	
		
			
				|  |  |  |  |   color: #26c926; | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | .ResRed{ | 
		
	
		
			
				|  |  |  |  |   color: #FF0000; | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | </style> | 
		
	
	
		
			
				
					|  |  |  | 
 |