You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

mid.js 909B

1234567891011121314151617181920212223242526272829303132
  1. /**
  2. * @Author: Caven
  3. * @Date: 2020-08-21 18:16:52
  4. */
  5. import { Cesium } from '@dc-modules/namespace'
  6. import { Transform } from '@dc-modules/transform'
  7. import Parse from '@dc-modules/parse/Parse'
  8. import Position from '@dc-modules/position/Position'
  9. export default function mid(start, end) {
  10. let startPosition = start
  11. let endPosition = end
  12. if (!(start instanceof Cesium.Cartesian3)) {
  13. startPosition = Parse.parsePosition(start)
  14. startPosition = Transform.transformWGS84ToCartesian(startPosition)
  15. }
  16. if (!(end instanceof Cesium.Cartesian3)) {
  17. endPosition = Parse.parsePosition(end)
  18. endPosition = Transform.transformWGS84ToCartesian(endPosition)
  19. }
  20. let mc = new Cesium.EllipsoidGeodesic(
  21. startPosition,
  22. endPosition
  23. ).interpolateUsingFraction(0.5)
  24. return new Position(
  25. Cesium.Math.toDegrees(mc.longitude),
  26. Cesium.Math.toDegrees(mc.latitude),
  27. mc.height
  28. )
  29. }