2025-02-25 02:43:57 +00:00
|
|
|
import { lineString, bezierSpline } from '@turf/turf'
|
|
|
|
|
2024-12-09 06:44:52 +00:00
|
|
|
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)
|
2025-02-11 02:56:16 +00:00
|
|
|
const height = cartographic.height
|
|
|
|
return [lon, lat, height]
|
2024-12-09 06:44:52 +00:00
|
|
|
}
|
2025-02-25 02:43:57 +00:00
|
|
|
|
|
|
|
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))
|
|
|
|
}
|