This commit is contained in:
Binary committed 2026-03-05 15:59:26 +08:00
1 parent cc23858c07
commit 5876d842c5
3 files changed
+8 -16

No files matched your search

+8 -3
View File
@@ -264,8 +264,14 @@ onMounted(async () => {
const terrainPosition = await getTerrainPosition(cartographic) const terrainPosition = await getTerrainPosition(cartographic)
// 直接创建Wayline实例,第一个创建的点就是航点 // 直接创建Wayline实例,第一个创建的点就是航点
window.wayline = new Wayline() window.wayline = new Wayline()
// 将点击位置作为第一个航点 // 将点击位置作为第一个航点,并添加初始高度
window.wayline.createWayPoint(terrainPosition) const cartographicWithHeight = Cartographic.fromCartesian(terrainPosition)
const elevatedPosition = Cartesian3.fromRadians(
cartographicWithHeight.longitude,
cartographicWithHeight.latitude,
cartographicWithHeight.height + 120 // 使用120作为初始高度
)
window.wayline.createWayPoint(elevatedPosition)
// 不移除点击事件,因为用户可能需要创建多个航线 // 不移除点击事件,因为用户可能需要创建多个航线
} }
@@ -443,7 +449,6 @@ async function getTerrainPosition(cartographic: Cartographic) {
</div> </div>
</div> </div>
<div v-if="store.pointList.length === 0" class="empty-message"> <div v-if="store.pointList.length === 0" class="empty-message">
暂无航点,按空格键创建航点
</div> </div>
</div> </div>
</div> </div>
-5
View File
@@ -14,7 +14,6 @@ export interface WayPointInfo {
} }
export type LensMode = 'wide' | 'zoom'; export type LensMode = 'wide' | 'zoom';
export type WaylineMode = 'edit' | 'preview';
export const useStore = defineStore('main', { export const useStore = defineStore('main', {
state: () => ({ state: () => ({
@@ -23,7 +22,6 @@ export const useStore = defineStore('main', {
pointList: [] as WayPointInfo[], pointList: [] as WayPointInfo[],
gimbalPitch: 0, // 云台俯仰角(度) gimbalPitch: 0, // 云台俯仰角(度)
yawAngle: 0, // 偏航角(度) yawAngle: 0, // 偏航角(度)
waylineMode: 'edit' as WaylineMode
}), }),
actions: { actions: {
updateZoomFactor(zoomFactor: number) { updateZoomFactor(zoomFactor: number) {
@@ -38,9 +36,6 @@ export const useStore = defineStore('main', {
updateGimbalData(pitch: number, yaw: number) { updateGimbalData(pitch: number, yaw: number) {
this.gimbalPitch = pitch; this.gimbalPitch = pitch;
this.yawAngle = yaw; this.yawAngle = yaw;
},
setWaylineMode(mode: WaylineMode) {
this.waylineMode = mode;
} }
} }
}) })
-8
View File
@@ -144,7 +144,6 @@ export class Wayline {
const scene = viewer.scene const scene = viewer.scene
handler.setInputAction((click: ScreenSpaceEventHandler.PositionedEvent) => { handler.setInputAction((click: ScreenSpaceEventHandler.PositionedEvent) => {
if (store.waylineMode === 'preview') return
const object = scene.pick(click.position) const object = scene.pick(click.position)
if (object && object.id) { if (object && object.id) {
// 检查是否点击了高度调整按钮 // 检查是否点击了高度调整按钮
@@ -163,7 +162,6 @@ export class Wayline {
}, ScreenSpaceEventType.LEFT_DOWN) }, ScreenSpaceEventType.LEFT_DOWN)
handler.setInputAction((click: ScreenSpaceEventHandler.PositionedEvent) => { handler.setInputAction((click: ScreenSpaceEventHandler.PositionedEvent) => {
if (store.waylineMode === 'preview') return
const object = scene.pick(click.position) const object = scene.pick(click.position)
if (object && object.id && (object.id as any).wayPoint && (object.id as any).wayPoint.selected) { if (object && object.id && (object.id as any).wayPoint && (object.id as any).wayPoint.selected) {
isLifting = true isLifting = true
@@ -190,10 +188,6 @@ export class Wayline {
}, ScreenSpaceEventType.LEFT_UP, KeyboardEventModifier.ALT) }, ScreenSpaceEventType.LEFT_UP, KeyboardEventModifier.ALT)
handler.setInputAction((movement: ScreenSpaceEventHandler.MotionEvent) => { handler.setInputAction((movement: ScreenSpaceEventHandler.MotionEvent) => {
if (store.waylineMode === 'preview') {
scene.canvas.style.cursor = 'default'
return
}
const object = scene.pick(movement.endPosition) const object = scene.pick(movement.endPosition)
if (object && object.id) { if (object && object.id) {
if ((object.id as any).heightAdjustButton) { if ((object.id as any).heightAdjustButton) {
@@ -239,7 +233,6 @@ export class Wayline {
}, ScreenSpaceEventType.MOUSE_MOVE) }, ScreenSpaceEventType.MOUSE_MOVE)
handler.setInputAction((movement: ScreenSpaceEventHandler.MotionEvent) => { handler.setInputAction((movement: ScreenSpaceEventHandler.MotionEvent) => {
if (store.waylineMode === 'preview') return
if (isLifting && draggingWayPoint) { if (isLifting && draggingWayPoint) {
const lngLat = Cartographic.fromCartesian(draggingWayPoint.position) const lngLat = Cartographic.fromCartesian(draggingWayPoint.position)
@@ -274,7 +267,6 @@ export class Wayline {
window.addEventListener('keydown', (event: KeyboardEvent) => { window.addEventListener('keydown', (event: KeyboardEvent) => {
if (event.code === 'Space') { if (event.code === 'Space') {
if (store.waylineMode === 'preview') return
const position = minimapViewer.camera.position.clone() const position = minimapViewer.camera.position.clone()
this.createWayPoint(position) this.createWayPoint(position)
} }