Merge branch 'main' of ssh://git.wash-painting.cn:2222/cg/-----
This commit is contained in:
75
src/App.vue
75
src/App.vue
@@ -427,6 +427,7 @@ const wsConnected = ref(false)
|
||||
const droneData = ref(null)
|
||||
const isFlying = ref(false)
|
||||
const droneMarker = ref(null)
|
||||
const drone2Marker = ref(null)
|
||||
let wsClient = null
|
||||
let mockDataGenerator = null
|
||||
const isInFence = ref(true)
|
||||
@@ -558,42 +559,43 @@ let conn = null;
|
||||
// 初始化WebSocket连接
|
||||
const initWebSocket = () => {
|
||||
// 使用模拟数据生成器(因为目前没有真实WebSocket服务器)
|
||||
mockDataGenerator = new MockWebSocketDataGenerator({
|
||||
interval: 500, // 内部500ms生成一次数据(用于平滑)
|
||||
startLat: 39.90923, // 北京天安门附近
|
||||
startLng: 116.397428,
|
||||
speed: 0.00005 // 移动速度
|
||||
})
|
||||
// mockDataGenerator = new MockWebSocketDataGenerator({
|
||||
// interval: 500, // 内部500ms生成一次数据(用于平滑)
|
||||
// startLat: 39.90923, // 北京天安门附近
|
||||
// startLng: 116.397428,
|
||||
// speed: 0.00005 // 移动速度
|
||||
// })
|
||||
|
||||
// 监听数据(使用节流,大幅降低更新频率)
|
||||
mockDataGenerator.start((data) => {
|
||||
const now = Date.now()
|
||||
// 只更新数据状态,不触发地图更新
|
||||
droneData.value = data
|
||||
// // 监听数据(使用节流,大幅降低更新频率)
|
||||
// mockDataGenerator.start((data) => {
|
||||
// const now = Date.now()
|
||||
// // 只更新数据状态,不触发地图更新
|
||||
// droneData.value = data
|
||||
|
||||
// 节流:降低地图更新频率
|
||||
if (now - lastUpdateTime >= UPDATE_INTERVAL) {
|
||||
lastUpdateTime = now
|
||||
handleDroneData(data)
|
||||
}
|
||||
})
|
||||
// // 节流:降低地图更新频率
|
||||
// if (now - lastUpdateTime >= UPDATE_INTERVAL) {
|
||||
// lastUpdateTime = now
|
||||
// handleDroneData(data)
|
||||
// }
|
||||
// })
|
||||
|
||||
wsConnected.value = true
|
||||
ElMessage.success('无人机数据连接成功(模拟模式)')
|
||||
ElMessage.success('无人机数据连接成功')
|
||||
}
|
||||
|
||||
// 起飞处理
|
||||
const handleTakeoff = () => {
|
||||
// 检查是否已有围栏
|
||||
if (fences.value.length === 0) {
|
||||
ElMessage.warning('请先绘制电子围栏后再起飞')
|
||||
return
|
||||
}
|
||||
// if (fences.value.length === 0) {
|
||||
// ElMessage.warning('请先绘制电子围栏后再起飞')
|
||||
// return
|
||||
// }
|
||||
|
||||
// 如果未连接,先连接
|
||||
if (!wsConnected.value) {
|
||||
initWebSocket()
|
||||
}
|
||||
// // 如果未连接,先连接
|
||||
// if (!wsConnected.value) {
|
||||
// initWebSocket()
|
||||
// }
|
||||
ctrl.TakeoffAndAutoExecTask({});
|
||||
|
||||
// 设置飞行状态
|
||||
isFlying.value = true
|
||||
@@ -622,7 +624,22 @@ const toggleWebSocket = () => {
|
||||
initWebSocket()
|
||||
conn = ctrl.Message();
|
||||
conn.onDroneGPS = (data) => {
|
||||
console.log(data);
|
||||
// console.log(data);
|
||||
const drone1 = data.drone_1;
|
||||
const drone2 = data.drone_2;
|
||||
const point = gcoord.transform(
|
||||
[drone1.longitude, drone1.latitude],
|
||||
gcoord.WGS84, // 当前坐标系
|
||||
gcoord.GCJ02, // 目标坐标系
|
||||
);
|
||||
const point2 = gcoord.transform(
|
||||
[drone2.longitude, drone2.latitude],
|
||||
gcoord.WGS84, // 当前坐标系
|
||||
gcoord.GCJ02, // 目标坐标系
|
||||
);
|
||||
console.log(point, point2);
|
||||
// updateDroneMarker(point[0], point[1], drone1.heading);
|
||||
// updateDrone2Marker(point2[0], point2[1], drone2.heading);
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1466,6 +1483,10 @@ onUnmounted(() => {
|
||||
map?.remove(droneMarker.value)
|
||||
droneMarker.value = null
|
||||
}
|
||||
if (drone2Marker.value) {
|
||||
map?.remove(drone2Marker.value)
|
||||
drone2Marker.value = null
|
||||
}
|
||||
|
||||
if (mouseTool) {
|
||||
mouseTool.close()
|
||||
|
||||
@@ -98,7 +98,9 @@ function upload(url, params) {
|
||||
}
|
||||
|
||||
// export let host = `${window.location.protocol}//${window.location.host}`;
|
||||
// export let host = "http://192.168.43.98:5678";
|
||||
export let host = "http://192.168.3.81:5678";
|
||||
// export let host = "http://127.0.0.1:5678";
|
||||
|
||||
export const getConfig = () => {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user