修改为小于当前选择的范围的实体才会跳动

This commit is contained in:
huangchenhao 2025-11-28 09:49:22 +08:00
parent d05077e9ed
commit 60faaca7cb
3 changed files with 8 additions and 5 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -1,4 +1,4 @@
import { ref } from 'vue'
import { inject, ref } from 'vue'
import * as Cesium from 'cesium'
import { cesiumDataConfig } from '../config/cesiumData'
import { collapseBoundaryData } from '../config/collapseBoundary'
@ -1043,18 +1043,21 @@ export function useMapMarkers() {
* @param {number} duration 动画持续时间
* @param {number} pixelJumpHeight 像素跳动高度
*/
const triggerJumpAnimation = (viewer, duration = 5, pixelJumpHeight = 30) => {
const triggerJumpAnimation = (viewer, duration = 5, pixelJumpHeight = 30, disasterData) => {
console.log(`[useMapMarkers] 触发像素跳动动画,持续时间 ${duration} 秒,像素高度 ${pixelJumpHeight}`)
if (!viewer) {
console.warn('[useMapMarkers] triggerJumpAnimation: viewer 为空')
return
}
const currentDistance = disasterData.forcePreset.value.searchRadius;
console.log('currentDistance', currentDistance)
const allEntities = [
...markerEntities.value,
...emergencyResourceEntities.value,
...reserveCenterEntities.value
].filter(e => e.billboard && e.properties?.distance?.getValue() <= 50)
].filter(e => e.billboard && e.properties?.distance?.getValue() <= currentDistance)
console.log('allEntities', allEntities)

View File

@ -1130,7 +1130,7 @@ const flyToBestViewForMarkers = () => {
const { camera } = mapStore.services();
// ()
const radiusKm = disasterData.forcePreset.value.searchRadius;
const radiusKm = disasterData.forcePreset.value.searchRadius + 20; // 20km
const radiusMeters = radiusKm * 1000;
//
@ -1659,7 +1659,7 @@ provide("onDistanceChange", handleDistanceChange);
// viewer
provide("cesiumViewer", cesiumViewer);
provide("triggerJump", (duration = 5, height = 30) => {
triggerJumpAnimation(cesiumViewer.value, duration, height);
triggerJumpAnimation(cesiumViewer.value, duration, height, disasterData);
});
</script>