腾讯位置服务获奖案例:航班轨迹可视化实战(Trae Solo)
摘要
利用TraeSolo与腾讯位置服务,实现航班轨迹可视化。通过AI自动解析Excel格式海量时空数据,
航班轨迹可视化是一个兼具技术深度与行业价值的领域。其背后是民航业多年积累的海量时空数据——经纬度、高度、速度、航向、起降时间等参数,这些数据隐含着航班运行规律、空域资源利用效率以及潜在安全风险。但过去这些数据大多沉睡在表格和日志中,可读性差、信息零散,难以直观提取价值。在智慧民航和数字孪生概念加速落地的今天,从民航企业运营监控、空管调度优化,到飞行爱好者的轨迹追溯、自媒体的内容创作,各方都在迫切寻找一种高效、直观、精准的可视化方案。为此,我们借助Trae Solo和腾讯位置服务,打通从原始数据到动态可视化的全链路。
一、引言
1、项目背景
全球民航业高速发展,航班调度密度持续增长,航班运行产生的时空轨迹数据呈爆发式增长。这些数据虽至关重要,但传统表格、日志式的呈现方式存在明显短板:可读性差、信息杂乱、难以直观挖掘洞察。智慧民航与数字孪生技术的普及,进一步放大了对高效可视化手段的需求。无论是民航企业的运行监控、空管部门的流量调度优化,还是飞行爱好者的轨迹追溯、自媒体的内容制作,都亟需一种高效、直观、精准的轨迹可视化方案。

2、航班轨迹可视化的价值
航班轨迹可视化的核心在于“让数据开口说话”。其价值体现在三个层面:第一,提升数据可读性,将抽象的时空数据转化为直观的动态轨迹,无需专业背景即可快速掌握飞行路径、起降节点和飞行状态;第二,支撑业务落地,为民航企业提供运行监控、航线优化、异常排查的决策依据,为空管部门提供空域流量可视化的管理工具;第三,降低使用门槛,让飞行爱好者和自媒体从业者轻松获得轨迹展示与内容创作能力,拉近民航与普通用户的距离。航旅纵横推出的“航旅天眼”就是这一方向的典型实践。
3、AI赋能的轨迹可视化
传统航班轨迹可视化多依赖固定脚本开发,轨迹解析效率低、动态效果僵硬,且难以适配多场景数据。AI技术的融入,特别是Trae Solo这类AI编程工具的出现,彻底改变了局面。Trae Solo凭借强大的数据分析和代码生成能力,可快速处理海量航班轨迹数据,自动完成数据清洗、轨迹拟合和异常修正,无需手动编写复杂解析逻辑。同时,AI还能实时识别飞行阶段(起飞、巡航、降落),动态调整轨迹渲染效果,实现“数据输入→AI解析→可视化输出”的全流程自动化。融入LSTM、GRU等深度学习模型的思路,可进一步提升飞行阶段识别的精度,让可视化更具专业水准。

二、基础数据准备
1、航班数据介绍
本项目使用的航班数据涵盖民航客机的核心运行参数,主要来自公开航班数据集。

核心字段包括:航班号、起降机场代码、起飞时间、降落时间、实时经纬度(每10秒采样一次)、飞行高度、飞行速度、航向角、飞机型号、襟翼位置、起落架状态等。可根据需要查询具体航班的飞行轨迹,下图是一个示例(完整信息可访问官方网站)。

其中,经纬度、高度、速度、航向角是轨迹可视化的核心数据,用于绘制航班飞行路径。
2、数据转Excel
为便于Trae Solo解析与后续处理,需将原始航班数据(如上述HTML格式)转换为Excel格式。操作遵循“简洁规范、字段对应”原则:

具体步骤:①筛选核心字段,剔除无效数据(如空值、异常经纬度),确保数据完整性;②统一数据格式,时间标准化为“YYYY-MM-DD HH:MM:SS”,经纬度保留6位小数,高度单位统一为米,速度单位统一为km/h;③按航班号分组,将同一航班的所有轨迹数据按时间排序,避免数据错乱;④保存为Excel文件(.xlsx格式),命名规范为“航班号_日期.xlsx”,便于批量解析与管理。Excel格式兼容性强,Trae Solo可快速读取并识别字段,无需额外编写数据解析适配代码。
3、Trae Solo解析航线轨迹
Trae Solo作为AI驱动的编程工具,可快速完成航线轨迹数据的解析与预处理。核心操作步骤如下:
①导入Excel格式的航班数据,Trae Solo自动识别字段类型并生成数据预览,可手动校验数据准确性。在Solo中输入以下自然语言指令:解析这个excel文件,形成航班轨迹json文件

②配置解析规则,指定核心轨迹字段(经纬度、高度、时间),设置异常数据过滤条件(如剔除经纬度超限、速度异常的记录)。
③启动AI解析,Trae Solo自动完成数据清洗和轨迹点拟合,将离散轨迹点连接为连续航线,同时生成轨迹数据的JSON格式文件(包含每个轨迹点的完整参数),用于后续腾讯地图可视化渲染。

④解析完成后,可通过Trae Solo的预览功能快速查看航线轨迹概貌,无需手动编写解析代码,开发效率大幅提升。
4、飞机模型
本项目使用空客A320的飞机模型,我们通过互联网获取了一个开源的A320客机模型文件。该模型文件将在后续轨迹重现中发挥关键作用,如下图所示:


三、功能需求
3.1 地图基础功能
3.1.1 三维地图展示
基于腾讯地图JavaScript API GL实现三维地图渲染,支持矢量底图,包含中文地理标注;支持地图旋转(rotation)、俯仰角(pitch)、缩放(zoom)等交互操作。
3.1.2 鹰眼视图
右下角设置独立小地图,展示全局飞行轨迹概览,实时同步飞机当前位置(红色标记点);跟随主地图旋转方向,保持方向一致。小地图尺寸为320×220像素,不可交互。
3.2 飞行轨迹管理
3.2.1 轨迹加载
支持JSON格式的飞行轨迹数据加载,数据内嵌于HTML页面,无需外部文件依赖。轨迹数据包含:时间戳、经纬度、航向、速度、高度、垂直速率等字段。
3.2.2 多航线管理
左侧轨迹列表面板显示每条航线的基本信息;支持航线的选中、显示/隐藏、删除操作。
3.3 飞行动画系统
3.3.1 飞机模型展示
基于GLTFModel加载三维飞机模型(A320.glb);模型自动朝向飞行方向(通过degreeToNorth参数控制)。
3.3.2 飞行动画回放
基于moveAlong API实现沿轨迹路径的平滑飞行动画,支持播放、暂停、恢复、停止控制;播放速度可调(1x-10x倍速)。
3.3.3 视角跟随
第一视角跟随模式:地图自动旋转使航向方向朝屏幕上方,视角平滑过渡(easeTo),过渡时长800ms;采用节流控制(500ms间隔)防止视角抖动,支持一键切换跟随/自由视角模式。
3.3.4 模型跟随标签
航班号标签(如MU5220),蓝色背景白色字体,显示航空公司名称(如“中国东方航空”)、飞机型号(如B737-800)、机龄与乘客人数信息。
3.4 飞行信息面板
3.4.1 实时飞行数据
航线信息(出发机场→到达机场),飞行状态(等待中/飞行中/已暂停/已结束);当前速度(km/h),当前高度(m),当前位置(经纬度),当前航向(度)。
3.4.2 飞行阶段识别
基于高度和垂直速率自动判断飞行阶段,阶段类型:滑行、爬升、巡航、下降、起降、地面。垂直速率实时显示(m/min)。
3.4.3 高度剖面图
页面底部全宽展示,Canvas绘制连续折线图,带渐变填充;纵坐标为飞行高度(自动切换m/km单位),带网格线;横坐标为飞行时间(分钟),带刻度标注。
3.5 播放控制
顶部居中控制面板,支持飞行起飞阶段广播、巡航音乐以及降落广播等音频播放;播放/暂停按钮(▶/⏸),停止按钮(⏹),播放速度滑块(1x-10x)。
四、架构和数据处理
1、系统架构
本项目采用“前端渲染 + AI解析 + GIS支撑”的三层架构,整体结构清晰、可扩展性强,适配全栈实践需求,具体分层如下:

架构设计的优势在于:各层独立解耦,可单独扩展(如数据层可对接真实航班API,核心层可新增AI算法优化轨迹渲染)。Trae Solo与腾讯位置服务的深度融合,大幅降低了开发难度,同时提升了系统的稳定性与流畅度。这种思路与实时空中交通管理系统的架构设计异曲同工,兼顾了高效性与可扩展性。
2、数据处理过程
数据处理是轨迹可视化的核心前提。本项目的数据处理全过程基于Trae Solo实现自动化,无需手动编写大量代码,具体流程如下:

数据导入:用户上传Excel格式的航班数据,系统自动读取数据并进行格式校验,剔除空值、异常数据(如经纬度超出[-90,90]、[0,180]范围,速度小于0或大于1500km/h的数据)。
数据清洗:Trae Solo通过AI算法自动修正数据偏差,例如对离散轨迹点进行平滑处理,补充缺失的轨迹数据(基于相邻轨迹点的时间、速度进行插值计算),确保轨迹连续性。
轨迹解析:Trae Solo识别经纬度、高度、时间等核心字段,将离散轨迹点按时间顺序拟合为连续航线,生成包含轨迹点坐标、飞行状态参数的JSON数据,同时标注每个轨迹点对应的飞行阶段(基于速度、高度、襟翼状态等参数判断)。
数据适配:将解析后的轨迹数据适配腾讯位置服务API格式,转换为地图可识别的坐标体系(WGS84坐标系),添加航班号、飞机型号等附加信息,用于后续可视化渲染。
数据缓存与输出:将处理后的轨迹数据进行临时缓存,提升渲染速度,同时支持用户导出处理后的JSON/Excel数据,便于后续复用与分析。
整个数据处理过程中,Trae Solo承担了核心的自动化解析与清洗工作。相比传统手动处理方式,效率提升80%以上,同时也避免了人为误差,确保了轨迹可视化的准确性。这里也参考了基于DBSCAN聚类的数据分析思路,进一步提升了数据处理的精准度。
五、关键技术实现
虽然项目很多功能基于Trae实现,但其中有几个关键技术过程还是需要简单介绍,特别是模型朝向控制和视角跟随算法的计算。这两个环节对整体效果的影响非常大。
1、模型朝向控制
模型朝向控制是提升航班轨迹可视化真实感的核心技术。本项目基于Trae Solo的AI计算能力与腾讯地图API的姿态控制功能,实现飞机模型朝向与飞行方向的实时同步。具体实现思路如下:
核心原理:飞机模型的朝向由飞行航向角决定。Trae Solo通过解析轨迹数据中的航向角参数,结合相邻轨迹点的位置变化,计算出飞机的飞行方向向量;腾讯地图API通过Camera组件与Model组件,将飞机模型的朝向与该方向向量绑定,实现“飞行方向改变,模型朝向同步改变”。
具体实现:参考Cesium中模型朝向控制的思路,利用Trae Solo计算相邻轨迹点的经纬度、高度差值,得到飞行方向向量,转换为航向角(0°-360°);将航向角参数传入腾讯地图飞机模型的姿态控制接口,设置模型的旋转角度,确保飞机头部始终朝向飞行方向。具体控制方法如下:
// ============================================================
// moveAlong 事件处理(视角跟随 + 信息更新)
// ============================================================
function setupModelEvents(traj) {
// 节流控制:避免频繁 easeTo 导致抖动
var _lastEaseTime = 0;
var _easeInterval = 500; // 最少间隔 500ms 才更新一次视角
var _lastCityTime = 0; // 上次城市检测时间
var _lastCityName = ''; // 上次检测到的城市名称(用于判断城市变化)
var _cityInterval = 20000;// 城市检测间隔 20秒
// 模型移动中事件
traj.model.on('moving', function (e) {
if (!e.passedPath || e.passedPath.length < 2) return;
var lastPos = e.passedPath[e.passedPath.length - 1].position;
var normalizedHeading = 0;
// 计算航向
if (e.passedPath.length >= 2) {
var heading = TMap.geometry.computeHeading(
e.passedPath[e.passedPath.length - 2].position,
lastPos
);
normalizedHeading = ((heading % 360) + 360) % 360;
}
// 跟随模式:地图随模型前进方向旋转,保持正向
if (isFollowMode && traj.id === activeTrajectoryId) {
var now = Date.now();
if (now - _lastEaseTime < _easeInterval) {
// 仅更新信息面板,不更新视角
updateInfoPanelFromEvent(traj, e);
// 仍然更新标签位置
updateLabelPosition(traj, lastPos);
return;
}
_lastEaseTime = now;
map.easeTo({
center: lastPos,
rotation: normalizedHeading,
zoom: 11,
pitch: 30,
}, { duration: 800 });
}
// 更新信息面板
updateInfoPanelFromEvent(traj, e);
// 更新高度折线图(动态标记当前位置)
// 沿途城市检测(每20秒检测一次,城市变化时播报)
// 更新鹰眼视图中的飞机位置和旋转
if (eaglePlaneDot) {
eaglePlaneDot.updateGeometries([{
id: 'eagle_plane',
styleId: 'dot',
position: lastPos
}]);
}
// 鹰眼跟随主地图旋转 + 居中到飞机位置
if (miniMap) {
miniMap.setRotation(normalizedHeading);
miniMap.setCenter(lastPos);
}
// 更新模型跟随标签位置 + 牵引线
updateLabelPosition(traj, lastPos);
});
}
2、视角跟随算法
视角跟随算法的核心目标,是实现“飞机飞行时,地图视角自动跟随,且保持视角流畅、不卡顿”。本项目结合Trae Solo的轨迹预测能力与腾讯地图的视角控制API,设计了自适应视角跟随算法,具体讲解如下:
// 设置 moveAlong 事件监听(视角跟随 + 信息更新)
setupModelEvents(traj);
// 预计算每段航向和累计距离(用于自定义动画引擎的空间插值)
traj._segments = [];
traj._totalDistance = 0;
for (var i = 1; i < traj.trajectoryData.length; i++) {
var prev = traj.trajectoryData[i - 1];
var curr = traj.trajectoryData[i];
var from = new TMap.LatLng(prev.latitude, prev.longitude);
var to = new TMap.LatLng(curr.latitude, curr.longitude);
var heading = TMap.geometry.computeHeading(from, to);
var dist = TMap.geometry.computeDistance([from, to]);
traj._segments.push({
fromLat: prev.latitude,
fromLng: prev.longitude,
toLat: curr.latitude,
toLng: curr.longitude,
heading: heading,
distance: dist,
startDist: traj._totalDistance,
pointIndex: i,
speed: curr.speed_kmh || 0,
altitude: curr.altitude_meters || 0,
});
traj._totalDistance += dist;
}
traj._currentDistance = 0;
traj._currentHeading = traj._segments.length > 0 ? traj._segments[0].heading : 0;
traj._currentLat = traj.trajectoryData[0].latitude;
traj._currentLng = traj.trajectoryData[0].longitude;
算法核心逻辑:基于Trae Solo解析的轨迹数据,预测飞机的下一个轨迹点位置,提前调整地图视角,避免视角跟随滞后。同时根据飞机的飞行速度、高度,动态调整视角距离与高度——速度越快,视角距离越远;高度越高,视角高度越高,确保能清晰看到航班轨迹。
平滑过渡处理方面:采用线性插值算法,实现视角从当前位置到目标位置的平滑过渡,避免视角跳跃、卡顿。当飞机进行转弯、升降等姿态变化时,动态调整视角旋转速度,适配飞机姿态变化,提升用户体验。
3、飞行阶段识别
飞行阶段识别是实现航班轨迹精细化可视化的关键。本项目基于Trae Solo的AI分类能力,结合航班运行参数,实现起飞、巡航、降落三个核心飞行阶段的自动识别,参考了基于QAR数据与深度学习模型的飞行阶段划分思路。具体实现如下:
识别参数方面:选取航班轨迹数据中的核心参数——速度、高度、襟翼位置、起落架状态,作为飞行阶段识别的特征参数。
AI识别逻辑:Trae Solo通过训练好的分类模型,对每个轨迹点的特征参数进行分析,设定识别阈值——起飞阶段(速度从0提升至巡航速度,高度快速上升,襟翼打开,起落架收起)、巡航阶段(速度、高度保持稳定,襟翼关闭,起落架收起)、降落阶段(速度、高度快速下降,襟翼打开,起落架放下)。
可视化联动:识别出飞行阶段后,同步在地图上标注阶段名称(如“起飞阶段”“巡航阶段”),同时调整轨迹颜色、飞机模型姿态,实现“飞行阶段变化,可视化效果同步变化”,让用户直观区分不同飞行阶段。
/**
* 渲染轨迹列表
*/
function renderTrajectoryList() {
var listEl = document.getElementById('trajectoryList');
var html = '';
trajectories.forEach(function (traj) {
var isActive = traj.id === activeTrajectoryId;
var statusClass = 'status-' + traj.status;
var statusText = { ready: '就绪', playing: '飞行中', paused: '已暂停', finished: '已结束' }[traj.status];
html += '';
html += '';
html += '';
html += '';
html += (traj.flightInfo.departure_airport || '?') + ' → ' + (traj.flightInfo.arrival_airport || '?');
html += '';
html += '' + statusText + '';
html += '';
html += '';
html += '? ' + traj.trajectoryData.length + ' 个点';
html += '⏱ ' + formatSeconds(Math.floor((traj.endTime - traj.startTime) / 1000)) + '';
html += '';
html += '';
html += '';
html += '';
html += '';
html += '';
});
if (trajectories.length === 0) {
html = '暂无轨迹数据
点击上方"添加轨迹"按钮加载';
}
listEl.innerHTML = html;
}
六、成果展示
1、地图初始化
地图初始化完成后,默认加载腾讯地图3D模式,中心点设置为(经纬度:25.5, 106.5),缩放级别4级,可清晰看到城市轮廓、空域边界等基础地理信息。界面左侧显示航班列表,右侧显示操作面板(模式切换、速度调节、数据导入等)。支持鼠标缩放、平移、旋转地图,切换2D/3D模式,操作流畅无卡顿,兼顾了专业性与易用性。

2、飞机飞行跟随
启动飞行跟随功能后,地图视角自动跟随飞机飞行,视角距离与高度根据飞行速度、高度自适应调整:起飞阶段,视角近距离跟随,清晰展示飞机抬头起飞的姿态;巡航阶段,视角拉远,展示完整航线轨迹;降落阶段,视角再次拉近,展示飞机低头降落的细节。飞机模型朝向与飞行方向实时同步,转弯时模型自动旋转,飞行姿态真实自然。同时,飞机图标上标注航班号、当前速度、高度等信息,方便用户实时查看,解决了传统可视化中视角僵硬、跟随滞后的问题。

3、多媒体统一调度
多媒体统一调度功能实现了飞行过程与音频、提示信息的同步联动:当飞机进入起飞阶段时,自动播放航班起飞广播(例如“各位乘客,飞机即将起飞,请系好安全带”),同时在地图上弹出“起飞提示”;巡航阶段,播放平稳飞行广播;降落阶段,播放降落广播,并弹出“降落提示”。用户可手动控制多媒体播放(暂停、播放、音量调节),也可自定义上传音频文件,适配不同场景需求,让可视化体验更具沉浸感。这个思路参考了AR飞机展示的交互方式,提升了用户体验。

4、途经地展示
点击地图上的航班轨迹,可快速显示该航班的所有途经地,每个途经地显示城市名称、省份名称、停留时长(若有)。点击途经地图标,轨迹上用不同颜色标注途经地之间的航段,清晰区分不同航段的飞行状态,方便用户快速了解航班的运行路线与关键节点,实现了轨迹数据与地理信息的深度融合。

项目完整演示地址(视频时长3分钟,视频结尾音频来源于互联网。结尾彩蛋:曾经也是一名民航IT人,怀念站在航站楼旁看飞机起降的时光,此时耳旁似乎回响着飞机起降的轰鸣声。感恩大MU航,希望MU航越来越好,祝愿曾经一起奋斗的XDJM们越飞越高!):
基于AI驱动腾讯位置服务的航空航班飞行沉浸式体验
七、项目创新点
1、基于GIS的三维可视化
区别于传统2D轨迹可视化,本项目基于腾讯位置服务的GIS能力,实现了航班轨迹的三维可视化。结合Trae Solo的AI解析,让轨迹呈现更具真实感与立体感。传统2D可视化仅能展示航线的平面路径,无法体现飞行高度的变化,而本项目的三维可视化可清晰展示飞机的升降过程、飞行高度差异,同时结合地图地形、建筑物等元素,模拟真实飞行环境。AI驱动的模型朝向控制与视角跟随算法,让三维轨迹更流畅、更贴合实际飞行场景,解决了传统三维可视化卡顿、姿态僵硬的痛点。参考了基于GIS的机场信息服务系统的可视化思路,提升了可视化的专业性。
2、飞行全过程支持
实现从起飞、巡航、降落到经停的航班飞行全过程可视化,结合AI飞行阶段识别技术,让每个飞行阶段的展示都贴合实际运行规律。传统轨迹可视化多只展示巡航阶段的轨迹,忽略了起飞、降落等关键阶段,而本项目通过Trae Solo解析航班全程数据,识别每个飞行阶段的特征,同步调整可视化效果(轨迹颜色、模型姿态、多媒体提示),让用户直观看到航班飞行的完整过程。支持轨迹回放,可反复查看飞行全过程,便于民航企业排查运行异常、飞行爱好者回顾飞行轨迹。相比传统可视化,更具实用性与完整性,可覆盖包含复飞在内的各类飞行场景。
3、赋能多场景用户
打破传统可视化工具的场景局限,同时赋能民航企业、飞行爱好者、自媒体等多类用户,实现“一站式”轨迹可视化解决方案。对于民航企业,可用于航班运行监控、航线优化、异常排查,提升运营效率;对于飞行爱好者,可导入自定义航班数据,查看自己关注的航班轨迹,实现轨迹收藏、分享;对于自媒体从业者,可通过可视化效果制作航班相关的短视频、图文内容,降低内容创作门槛。系统支持数据导入/导出,可对接真实航班API,具备较强扩展性,可根据不同用户需求灵活调整功能,相比同类工具,场景适配性更强。类似航旅纵横的多场景服务思路,兼顾了行业与大众需求。
八、总结
本项目基于Trae Solo与腾讯位置服务,完成了航班轨迹航线可视化的全栈实践,围绕“AI驱动、GIS支撑、多场景适配”的核心,解决了传统航班轨迹可视化技术门槛高、体验不佳、场景局限等痛点,实现了从数据准备、AI解析、系统开发到成果落地的全流程闭环。
项目的核心亮点在于Trae Solo与腾讯位置服务的深度融合:Trae Solo的AI能力大幅降低了数据处理与开发门槛,实现了轨迹解析的自动化、精准化;腾讯位置服务的GIS能力为轨迹可视化提供了强大支撑,确保了地图加载、轨迹渲染、视角控制的流畅性。同时,项目通过模型朝向控制、视角跟随算法、飞行阶段识别等关键技术,提升了可视化的真实感与实用性,通过多场景赋能,让项目既有技术创新性,又有实际应用价值。
这次实践不仅完成了一款可落地的航班轨迹可视化系统,也为同类可视化项目提供了可复用的思路——借助AI工具简化开发流程,依托成熟的GIS服务提升可视化效果,兼顾技术创新与场景落地。未来,可进一步优化系统功能,对接真实航班实时API,实现实时航班轨迹可视化;同时增加移动端适配,扩大用户覆盖范围,助力智慧民航的进一步发展。
来源:互联网
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。