Initial commit
This commit is contained in:
202
QB303_ICON_FIX_GUIDE.md
Normal file
202
QB303_ICON_FIX_GUIDE.md
Normal file
@@ -0,0 +1,202 @@
|
||||
# 🔧 QB303设备图标显示问题修复指南
|
||||
|
||||
## 🎯 问题分析
|
||||
|
||||
根据您的测试日志,QB303设备数据处理完全正常,但图标无法显示。错误信息:
|
||||
|
||||
```
|
||||
GET http://localhost:3003/img/flyDevices.jpg 404 (Not Found)
|
||||
Error loading image for billboard: [object Event]
|
||||
```
|
||||
|
||||
## ✅ 已完成的修复
|
||||
|
||||
### **1. 图标路径修复**
|
||||
```javascript
|
||||
// 修复前:错误的路径
|
||||
return '/img/flyDevices.jpg';
|
||||
|
||||
// 修复后:包含正确的base路径
|
||||
return '/3dScreen/img/flyDevices.jpg';
|
||||
```
|
||||
|
||||
### **2. 添加图标测试工具**
|
||||
```javascript
|
||||
// 新增测试命令
|
||||
testIconPath() // 测试图标是否能正确加载
|
||||
```
|
||||
|
||||
## 🚀 测试步骤
|
||||
|
||||
### **步骤1:测试图标路径**
|
||||
```javascript
|
||||
// 在浏览器控制台执行
|
||||
testIconPath()
|
||||
```
|
||||
|
||||
**预期结果:**
|
||||
```
|
||||
=== 测试QB303设备图标路径 ===
|
||||
图标路径: /3dScreen/img/flyDevices.jpg
|
||||
✅ 图标加载成功!
|
||||
图标尺寸: XXXxXXX
|
||||
```
|
||||
|
||||
### **步骤2:重新测试QB303设备**
|
||||
```javascript
|
||||
// 测试QB303设备数据
|
||||
testQB303Data()
|
||||
```
|
||||
|
||||
### **步骤3:强制刷新显示**
|
||||
```javascript
|
||||
// 如果仍不显示,强制刷新
|
||||
forceRefreshQB303()
|
||||
```
|
||||
|
||||
### **步骤4:飞行到设备位置**
|
||||
```javascript
|
||||
// 飞行到QB303设备位置查看
|
||||
window.m3Data.map.flyTo({
|
||||
destination: Cesium.Cartesian3.fromDegrees(112.8945530952381, 28.20648476190476, 1000)
|
||||
});
|
||||
```
|
||||
|
||||
## 🔍 调试信息
|
||||
|
||||
### **您的设备数据(正常)**
|
||||
```json
|
||||
{
|
||||
"equipmentId": "dy04",
|
||||
"latitude": 28.20648476190476,
|
||||
"longitude": 112.8945530952381,
|
||||
"altitude": 200,
|
||||
"online_status": true,
|
||||
"battleUnitCode": "dy04"
|
||||
}
|
||||
```
|
||||
|
||||
### **设备创建日志(正常)**
|
||||
```
|
||||
✅ 加载QB303设备到地图: dy04
|
||||
✅ 创建新的QB303设备图标: dy04
|
||||
✅ QB303设备 dy04 已添加到地图
|
||||
```
|
||||
|
||||
### **问题定位**
|
||||
- ❌ **图标路径错误** (已修复)
|
||||
- ✅ **数据处理正常**
|
||||
- ✅ **设备创建正常**
|
||||
- ✅ **位置坐标正确**
|
||||
|
||||
## 📊 修复后的预期效果
|
||||
|
||||
修复后,QB303设备应该:
|
||||
|
||||
1. **📍 位置显示**: 湖南省坐标 (112.895°E, 28.206°N)
|
||||
2. **🖼️ 图标显示**: 使用 `flyDevices.jpg` 图标
|
||||
3. **🏷️ 标签显示**: "QB303-dy04" 绿色标签
|
||||
4. **🖱️ 点击交互**: 点击显示设备详情
|
||||
5. **🔄 实时更新**: 位置和姿态更新
|
||||
|
||||
## 🚨 如果问题仍然存在
|
||||
|
||||
### **备选图标路径测试**
|
||||
```javascript
|
||||
// 测试不同的图标路径
|
||||
const testPaths = [
|
||||
'/3dScreen/img/flyDevices.jpg',
|
||||
'./img/flyDevices.jpg',
|
||||
'img/flyDevices.jpg',
|
||||
'/img/flyDevices.jpg'
|
||||
];
|
||||
|
||||
testPaths.forEach(path => {
|
||||
const img = new Image();
|
||||
img.onload = () => console.log('✅ 成功:', path);
|
||||
img.onerror = () => console.log('❌ 失败:', path);
|
||||
img.src = path;
|
||||
});
|
||||
```
|
||||
|
||||
### **使用备用图标**
|
||||
如果 `flyDevices.jpg` 仍然无法加载,可以临时使用其他图标:
|
||||
|
||||
```javascript
|
||||
// 在aixiaorui.ts中修改getQB303DeviceIcon方法
|
||||
getQB303DeviceIcon(): string {
|
||||
// 使用备用图标
|
||||
return '/3dScreen/img/marker/plane-blue.png'; // 蓝色飞机图标
|
||||
// 或者
|
||||
return '/3dScreen/img/otherEquipment.png'; // 其他装备图标
|
||||
}
|
||||
```
|
||||
|
||||
### **手动创建测试图标**
|
||||
```javascript
|
||||
// 手动创建测试图标验证地图显示
|
||||
const testIcon = new mars3d.graphic.BillboardEntity({
|
||||
position: [112.8945530952381, 28.20648476190476, 200],
|
||||
style: {
|
||||
image: '/3dScreen/img/marker/plane-blue.png', // 使用已知存在的图标
|
||||
scale: 1.0,
|
||||
label: {
|
||||
text: 'TEST-QB303',
|
||||
fillColor: Cesium.Color.RED
|
||||
}
|
||||
}
|
||||
});
|
||||
window.m3Data.graphicLayer.addGraphic(testIcon);
|
||||
console.log('手动测试图标已添加');
|
||||
```
|
||||
|
||||
## 🎮 完整测试流程
|
||||
|
||||
```javascript
|
||||
// 完整的测试和修复流程
|
||||
console.log('=== QB303设备图标修复测试 ===');
|
||||
|
||||
// 1. 测试图标路径
|
||||
testIconPath();
|
||||
|
||||
// 等待2秒后执行下一步
|
||||
setTimeout(() => {
|
||||
// 2. 测试QB303设备数据
|
||||
testQB303Data();
|
||||
|
||||
setTimeout(() => {
|
||||
// 3. 强制刷新显示
|
||||
forceRefreshQB303();
|
||||
|
||||
setTimeout(() => {
|
||||
// 4. 飞行到设备位置
|
||||
window.m3Data.map.flyTo({
|
||||
destination: Cesium.Cartesian3.fromDegrees(112.8945530952381, 28.20648476190476, 1000)
|
||||
});
|
||||
console.log('✅ 测试完成,请检查地图显示');
|
||||
}, 1000);
|
||||
}, 1000);
|
||||
}, 2000);
|
||||
```
|
||||
|
||||
## 📋 快速命令参考
|
||||
|
||||
```javascript
|
||||
// === 图标测试 ===
|
||||
testIconPath() // 测试图标路径
|
||||
|
||||
// === QB303调试 ===
|
||||
testQB303Data() // 测试QB303数据
|
||||
forceRefreshQB303() // 强制刷新显示
|
||||
|
||||
// === 地图控制 ===
|
||||
// 飞行到QB303位置
|
||||
window.m3Data.map.flyTo({
|
||||
destination: Cesium.Cartesian3.fromDegrees(112.895, 28.206, 1000)
|
||||
});
|
||||
|
||||
// 检查图层内容
|
||||
console.log('图层数量:', window.m3Data.graphicLayer.length);
|
||||
```
|
||||
|
||||
现在图标路径已经修复,请测试 `testIconPath()` 确认图标能正确加载,然后重新测试QB303设备显示!🚁🛠️✨
|
||||
Reference in New Issue
Block a user