首页 > 其他分享 >dvgis计算两点间距离的问题

dvgis计算两点间距离的问题

时间:2023-01-18 22:22:44浏览次数:41  
标签:dvgis positions 距离 测地线 两点 pow Math

先贴一段代码,是dvgis里的distance.js源码,dvgis是cesium的二次封装,可以参考参考:

 1import{Cesium}from'@dc-modules/namespace' 2import{Transform}from'@dc-modules/transform' 3 
 4exportdefault functiondistance(positions){ 5letdistance=0 6       if(positions&&Array.isArray(positions)){ 7         for(leti=0;i<positions.length-1;i++) {
 8letc1=Transform.transformWGS84ToCartographic(positions[i]) 9letc2=Transform.transformWGS84ToCartographic(positions[i+1])
10letgeodesic=newCesium.EllipsoidGeodesic()11           geodesic.setEndPoints(c1, c2)
12lets= geodesic.surfaceDistance
13s=Math.sqrt(Math.pow(s,2)+Math.pow(c2.height-c1.height,2))
14distance+= s
15         }
16       }
17 
18       returndistance.toFixed(3)
19     }

看这个文件名字,应该是计算两点间距离的,其中用到了EllipsoidGeodesic,也就是测地线。

测地线就是地球上两点间沿着椭球走的那条最短路径。

 让我感到奇怪的是第13行代码

s = Math.sqrt(Math.pow(s, 2) + Math.pow(c2.height - c1.height, 2))

这样子更像是用勾股定理算长度。测地线明明是条曲线不知道为什么要平方。挺奇怪的。

  举起

标签:dvgis,positions,距离,测地线,两点,pow,Math
From: https://www.cnblogs.com/LJXXXX/p/17060739.html

相关文章