ts/src/utils/pos.js

38 lines
854 B
JavaScript

import { lineString, bezierSpline } from '@turf/turf'
export function cartesian32LonLat(cartesian3) {
const cartographic =
viewer.scene.globe.ellipsoid.cartesianToCartographic(cartesian3)
const lat = Cesium.Math.toDegrees(cartographic.latitude)
const lon = Cesium.Math.toDegrees(cartographic.longitude)
const height = cartographic.height
return [lon, lat, height]
}
export function getPositionFromTime(
startTime,
pos,
totalAnimationTime,
interval = 100
) {
const points = []
for (let i = 0; i <= totalAnimationTime / interval; i++) {
const time = Cesium.JulianDate.addSeconds(
startTime,
i,
new Cesium.JulianDate()
)
const point = pos.getValue(time)
point && points.push(point)
}
return points
}
export function getBezierSpline(points) {
return bezierSpline(lineString(points))
}