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

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

View File

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