huweili-cesium 1.2.68 → 1.2.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/js/movePath.js CHANGED
@@ -10,7 +10,6 @@
10
10
  */
11
11
  import * as Cesium from 'cesium'
12
12
  import { useMapStore } from './stores/mapStore.js'
13
- import { DroneConfig } from './config/index.js'
14
13
 
15
14
  const scratchCutoffTime = new Cesium.JulianDate()
16
15
 
@@ -48,25 +47,18 @@ export function movePathConfig() {
48
47
 
49
48
  const positions = trailData.positions
50
49
  const renderPositions = trailData.renderPositions || (trailData.renderPositions = positions.map(point => point.position).filter(Boolean))
51
- const lastPoint = positions[positions.length - 1]
52
- const lastPosition = lastPoint?.position
53
- const minTrailDistanceSquared = trailData.minTrailDistanceSquared || (trailData.minTrailDistanceSquared = DroneConfig.minTrailDistance * DroneConfig.minTrailDistance)
54
50
 
55
- // 降低轨迹追加频率:距离小于5米且距离上次追加不足300ms时,不追加新轨迹点。
56
- if (lastPoint && lastPosition) {
57
- const distanceSquared = Cesium.Cartesian3.distanceSquared(lastPosition, newPosition)
58
- const elapsedSeconds = Cesium.JulianDate.secondsDifference(currentTime, lastPoint.timestamp)
59
- if (distanceSquared < minTrailDistanceSquared || elapsedSeconds < DroneConfig.minTrailIntervalSeconds) {
60
- return trailData
61
- }
62
- }
63
-
64
- // 添加新的轨迹点,包含位置和时间戳
51
+ // 轨迹必须和无人机完全同步:每次直接复用同一个点,避免出现一帧延迟的间隙。
65
52
  const clonedPosition = Cesium.Cartesian3.clone(newPosition)
66
53
  positions.push({ position: clonedPosition, timestamp: Cesium.JulianDate.clone(currentTime) })
67
54
  renderPositions.push(clonedPosition)
68
55
  trailData.lastUpdateTime = currentTime
69
56
 
57
+ // 立刻通知 Cesium 重新取轨迹数组,避免 CallbackProperty 在下一帧才刷新。
58
+ if (trailData.entity?.polyline) {
59
+ trailData.entity.polyline.positions = renderPositions
60
+ }
61
+
70
62
  // 清理旧轨迹点,只保留最近指定时间的轨迹
71
63
  const trailTime = mapStore.getTrailTime(mapId)
72
64
  if (trailTime === -1 || positions.length <= 1) return trailData
package/js/movePoint.js CHANGED
@@ -266,6 +266,9 @@ export function movePointConfig(baseUrl) {
266
266
 
267
267
  modelEntity.isFlying = false
268
268
  modelEntity.currentPosition = Cesium.Cartesian3.clone(targetPosition, modelEntity.currentPosition || new Cesium.Cartesian3())
269
+ modelEntity.positionProperty = {
270
+ getValue: () => modelEntity.currentPosition
271
+ }
269
272
  modelEntity.info = modelEntity.info || {}
270
273
  modelEntity.info.pointId = pointId
271
274
  modelEntity.info.lng = lng
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "huweili-cesium",
3
- "version": "1.2.68",
3
+ "version": "1.2.70",
4
4
  "description": "基于 Cesium 的地图工具库(无人机态势、轨迹、围栏、工具栏等)",
5
5
  "type": "module",
6
6
  "main": "./index.js",