无人机管理后台前端(已迁走)
罗广辉
2025-08-25 8b76cca764bcf32c8f8d5d1a4b59926b67f1fc20
Merge branch 'feature/v5.0/5.0.4' into test
5 files modified
22 ■■■■■ changed files
src/components/map-container/mapContainer.vue 4 ●●●● patch | view | raw | blame | history
src/hooks/useRouteLine/useRouteLine.js 9 ●●●●● patch | view | raw | blame | history
src/utils/cesium/mapUtil.js 7 ●●●● patch | view | raw | blame | history
src/views/dataCenter/components/dataCenterMap.vue 1 ●●●● patch | view | raw | blame | history
src/views/dataCenter/dataCenter.vue 1 ●●●● patch | view | raw | blame | history
src/components/map-container/mapContainer.vue
@@ -59,7 +59,7 @@
async function initMap () {
    if (viewer) return
    publicCesiumInstance = new PublicCesium({ dom: 'viewer-container' })
    publicCesiumInstance = new PublicCesium({ dom: 'viewer-container',layerMode: 4 })
    viewer = publicCesiumInstance.getViewer()
    initViewer(viewer)
@@ -105,7 +105,7 @@
    // 定位到点位
    const points = [[lng, lat]]  // 确保格式为二维数组
    flyVisual({ positionsData:points, viewer })
    flyVisual({ positionsData:points, viewer,multiple: 10 })
}
/**
src/hooks/useRouteLine/useRouteLine.js
@@ -191,12 +191,11 @@
                height: 50,
            },
        })
        flyVisual(
            pointList.map(i => [Number(i.longitude), Number(i.latitude), Number(i.height)]),
        flyVisual({
            positionsData:pointList.map(i => [Number(i.longitude), Number(i.latitude), Number(i.height)]),
            viewer,
            20
        )
            multiple: 20
        })
    }
    function removePreviewLine () {
src/utils/cesium/mapUtil.js
@@ -409,6 +409,11 @@
export function flyVisual({ positionsData, viewer, multiple = 4, pitch = -90 }) {
    if (!Array.isArray(positionsData) || positionsData.length === 0) return
    // 如果是一个点,加两个点方便后续生成外包围盒
    if (positionsData.length === 1){
        const [lon,lat,height] = positionsData[0]
        positionsData = [[lon+0.001,lat+0.001,height],[lon-0.001,lat-0.001,height],[lon,lat,height]]
    }
    const positions = positionsData.map(([lon, lat, height]) =>
        Cesium.Cartesian3.fromDegrees(Number(lon), Number(lat), Number(height || 0))
    )
@@ -434,7 +439,7 @@
            range: boundingSphere.radius * multiple,
        },
        complete: () => {
            // 飞行完成后检查相机高度是否小于最高点
            // 飞行完成后检查相机高度是否小于最高点,如果小于直接飞到最高点
            const cameraHeight = Cesium.Cartographic.fromCartesian(viewer.camera.position).height
            if (cameraHeight < maxHeight) {
                viewer.camera.flyTo({
src/views/dataCenter/components/dataCenterMap.vue
@@ -202,6 +202,7 @@
      flatMode: false,
      terrain: false,
      mapFilter: true,
      layerMode: 4
    });
    viewer = publicCesiumInstance.getViewer();
    viewerRef.value = viewer;
src/views/dataCenter/dataCenter.vue
@@ -771,6 +771,7 @@
    flatMode: false,
    terrain: false,
    mapFilter: true,
    layerMode: 4
  });
  viewer = viewInstance.value.getViewer();
  viewerRef.value = viewer;