| | |
| | | import * as Cesium from 'cesium' |
| | | import { flyVisual } from '@/utils/cesium/mapUtil' |
| | | import { ArrowLineMaterialProperty } from '@/utils/cesium/Material' |
| | | import droneIcon from '@/assets/images/dataCockpit/map/drone.png' |
| | | |
| | | const initForm = () => ({ |
| | | droneName: '', |
| | |
| | | // 渲染航线 |
| | | function drawFlightPath() { |
| | | const positions = list.value.map(p => degreesToC3(p)) |
| | | if (!positions.length) return |
| | | droneLineEntity && geometricSource.entities.remove(droneLineEntity) |
| | | droneLineEntity = geometricSource.entities.add({ |
| | | polyline: { |
| | |
| | | positions: positions, |
| | | material: arrowLineMaterialProperty, |
| | | clampToGround: false, |
| | | }, |
| | | }) |
| | | startDroneEntity && geometricSource.entities.remove(startDroneEntity) |
| | | startDroneEntity = geometricSource.entities.add({ |
| | | position: positions[0], |
| | | billboard: { |
| | | image: droneIcon, |
| | | width: 40, |
| | | height: 40, |
| | | verticalOrigin: Cesium.VerticalOrigin.CENTER, |
| | | }, |
| | | }) |
| | | viewer.flyTo(droneLineEntity, { duration: 0 }) |
| | |
| | | viewer = null |
| | | geometricSource = null |
| | | droneLineEntity = null |
| | | startDroneEntity = null |
| | | } |
| | | |
| | | function getRowClassName({ row }) { |
| | |
| | | return row?.isAlarm === 1 ? 'alarm-row' : '' |
| | | } |
| | | |
| | | let viewer, geometricSource, droneLineEntity |
| | | let viewer, geometricSource, droneLineEntity, startDroneEntity |
| | | function initMap() { |
| | | if (viewer) return |
| | | const publicCesiumInstance = new PublicCesium({ |
| | |
| | | <style scoped lang="scss"> |
| | | :deep(.alarm-row) { |
| | | background: #2B2B4C !important; |
| | | |
| | | |
| | | td { |
| | | background-color: transparent !important; |
| | | } |