| 
                        123456789101112131415161718192021222324252627282930313233343536373839 | 
                        - /**
 -  * @Author: Caven
 -  * @Date: 2020-04-11 00:41:47
 -  */
 - 
 - import { Cesium } from '@dc-modules/namespace'
 - import { Transform } from '@dc-modules/transform'
 - import Parse from '@dc-modules/parse/Parse'
 - 
 - export default function heading(start, end) {
 -   let heading = 0
 -   let startPosition = Parse.parsePosition(start)
 -   let endPosition = Parse.parsePosition(end)
 -   startPosition = Transform.transformWGS84ToCartesian(startPosition)
 -   endPosition = Transform.transformWGS84ToCartesian(endPosition)
 -   let v = Cesium.Cartesian3.subtract(
 -     endPosition,
 -     startPosition,
 -     new Cesium.Cartesian3()
 -   )
 -   if (v) {
 -     Cesium.Cartesian3.normalize(v, v)
 -     let up = Cesium.Ellipsoid.WGS84.geodeticSurfaceNormal(
 -       startPosition,
 -       new Cesium.Cartesian3()
 -     )
 -     let east = Cesium.Cartesian3.cross(
 -       Cesium.Cartesian3.UNIT_Z,
 -       up,
 -       new Cesium.Cartesian3()
 -     )
 -     let north = Cesium.Cartesian3.cross(up, east, new Cesium.Cartesian3())
 -     heading = Math.atan2(
 -       Cesium.Cartesian3.dot(v, east),
 -       Cesium.Cartesian3.dot(v, north)
 -     )
 -   }
 -   return heading
 - }
 
 
  |