| 
                        1234567891011121314151617181920212223242526272829303132333435363738394041424344 | 
                        - /**
 -  * @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 startPosition = start
 -   let endPosition = end
 -   if (!startPosition || !endPosition) {
 -     return 0
 -   }
 - 
 -   if (!(start instanceof Cesium.Cartesian3)) {
 -     startPosition = Parse.parsePosition(start)
 -     startPosition = Transform.transformWGS84ToCartesian(startPosition)
 -   }
 - 
 -   if (!(end instanceof Cesium.Cartesian3)) {
 -     endPosition = Parse.parsePosition(end)
 -     endPosition = Transform.transformWGS84ToCartesian(endPosition)
 -   }
 - 
 -   let ff = Cesium.Transforms.eastNorthUpToFixedFrame(startPosition)
 -   let v = Cesium.Cartesian3.subtract(
 -     endPosition,
 -     startPosition,
 -     new Cesium.Cartesian3()
 -   )
 -   let vector = Cesium.Matrix4.multiplyByPointAsVector(
 -     Cesium.Matrix4.inverse(ff, new Cesium.Matrix4()),
 -     v,
 -     new Cesium.Cartesian3()
 -   )
 - 
 -   let heading = Math.atan2(vector.y, vector.x) - Cesium.Math.PI_OVER_TWO
 - 
 -   heading = Cesium.Math.TWO_PI - Cesium.Math.zeroToTwoPi(heading)
 - 
 -   return isNaN(heading) ? 0 : heading
 - }
 
 
  |