|                      | 123456789101112131415161718192021222324 | /**
 * @Author: Caven
 * @Date: 2020-03-31 20:58:06
 */
import { Cesium } from '../../namespace'
import { Transform } from '../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)
}
 |