| 
                        123456789101112131415161718192021222324 | 
                        - /**
 -  * @Author: Caven
 -  * @Date: 2020-03-31 20:58:06
 -  */
 - 
 - import { Cesium } from '@dc-modules/namespace'
 - import { Transform } from '@dc-modules/transform'
 - 
 - export default function distance(positions) {
 -   let distance = 0
 -   if (positions && Array.isArray(positions)) {
 -     for (let i = 0; i < positions.length - 1; i++) {
 -       let c1 = Transform.transformWGS84ToCartographic(positions[i])
 -       let c2 = Transform.transformWGS84ToCartographic(positions[i + 1])
 -       let geodesic = new Cesium.EllipsoidGeodesic()
 -       geodesic.setEndPoints(c1, c2)
 -       let s = geodesic.surfaceDistance
 -       s = Math.sqrt(Math.pow(s, 2) + Math.pow(c2.height - c1.height, 2))
 -       distance += s
 -     }
 -   }
 - 
 -   return distance.toFixed(3)
 - }
 
 
  |