diff --git a/docs/official_api.md b/docs/official_api.md index 4057463..0b49735 100644 --- a/docs/official_api.md +++ b/docs/official_api.md @@ -34,7 +34,7 @@ | 3 | latitude | 纬度 | double | 是 | | 4 | time | 时间戳(UTC 时间) | long | 是 | | 5 | altitude | 海拔高度 | double | 否 | -| 6 | trackNumber | 航迹号 | String | 否 | +| 6 | trackNumber | 航迹号 | long | 否 | ### 1.3 车辆位置数据接入 diff --git a/src/network/HTTPDataSource.cpp b/src/network/HTTPDataSource.cpp index 4751960..1fee1d3 100644 --- a/src/network/HTTPDataSource.cpp +++ b/src/network/HTTPDataSource.cpp @@ -417,7 +417,12 @@ bool HTTPDataSource::parseAircraftResponse(const std::string& response, std::vec } if (item.contains("trackNumber")) { - ac.trackNumber = item["trackNumber"].get(); + // 航迹号可能是数字类型,需要转换为字符串 + if (item["trackNumber"].is_number()) { + ac.trackNumber = std::to_string(item["trackNumber"].get()); + } else { + ac.trackNumber = item["trackNumber"].get(); + } } else { ac.trackNumber = "TN" + ac.flightNo.substr(2); // 默认使用航班号生成跟踪号 } diff --git a/tools/mock_server.py b/tools/mock_server.py index 6af3a8e..5cd6b8b 100644 --- a/tools/mock_server.py +++ b/tools/mock_server.py @@ -92,7 +92,7 @@ aircraft_data = [ "latitude": POINT_T7["latitude"], "time": int(time.time() * 1000), "altitude": 0.0, - "trackNumber": "TN001", + "trackNumber": 1001, # 改为数字格式 "speed": 36.0, # 内部使用的速度字段,不会在 API 返回中显示 "direction": { # 内部使用的方向字段,不会在 API 返回中显示 "lat": initial_target_lat,