您当前的位置:首页 > 好词好句 > 正文

如何开发一款航班跟踪程序软件_如何开发一款航班跟踪程序

如何开发一款航班跟踪程序软件_如何开发一款航班跟踪程序

北京时间8月3日零时18分,飞行资讯平台Flightradar24发布推文称,佩洛西的C-40C飞机(呼号SPAR19)在台北降落时,有70.8万人实时跟踪,SPAR19创下了Flightradar24平台实时跟踪人数的纪录。凌晨4点21分,Flightradar24发推文称,在这架呼号为SPAR19的飞机从吉隆坡飞往台北的过程中,有292万用户跟踪了至少一次飞行动态。飞机降落时,70.8万人实时跟踪。这两个数据都创下了Flightradar24的纪录。Flightradar 24:实时跟踪全球航班Flightradar 24是一项全球航班跟踪服务,最初由瑞典航空爱好者创立,可以提供全球数千架飞机的实时信息。

Flightradar 24可以实时跟踪全球1200多家航空公司的18万多个航班,往返于全球4000多个机场。可以在线追踪该航班当天的飞行地图轨迹、飞机型号、出发地、目的地、高度、飞行速度、经纬度、飞机雷达型号等信息。此外,还可以跟踪多天前航班的航班信息。

Flightradar24提供的上述服务可以在线使用,适用于iOS和Android设备。如果用户想要跟踪某个航班的信息,可以直接登录Flightradar24官网(http://www.flightradar24.com/),输入航班信息或者在地图中点击该航班,即可跟踪该航班的航班信息。

飞行跟踪Flightradar24的工作原理结合了来自多个数据源的数据,包括ADS-B、MLAT和雷达数据。ADS-B、MLAT、雷达数据可以与航空公司、机场的时刻表、航班状态数据进行聚合,在Flightradar24官网(www.flightradar24.com)和应用(https://www . flight radar 24 . com/apps)可以实现航班追踪功能。

ADS-B系统Flightradar24接收飞行信息的主要技术称为广播自动相关监视系统。下图很好的解释了ADS-B技术。

1、飞机从GPS导航源(卫星)获得其位置。

2、飞机上的ADS-B应答机发射包含位置(及更多)的信号。

3、ADS-B信号由连接到Flightradar24的接收器接收。

4、接收器向Flightradar24发送数据。

5、数据显示在www.flightradar24.com和Flightradar24应用程序中。

ADS-B是一项正在开发中的相对较新的技术。目前空中交通管制(ATC)很少使用。Flightradar 24估计,大约70%的商用客机(欧洲80%,美国60%)配备了ADS-B应答机。对于通用航空来说,这个数字可能不到20%。然而,配备ADS-B接收机的飞机比例正在稳步增加,这已逐渐成为世界上大多数飞机的强制性要求。在强制要求的情况下,ADS-B将取代一次雷达,成为空管中心使用的主要监视手段。

Flightradar24在全世界拥有超过20,000个ADS-B接收器的网络。这些接收器通过ADS-B转发器接收来自飞机的飞行信息,并将信息发送到Flightradar24的服务器。由于所使用的高频(1090 MHz),每个接收器的覆盖范围在所有方向上被限制在大约250-450公里(150-250英里),这取决于位置。飞机飞得离接收器越远,它必须飞得越高才能被接收器覆盖。由于距离限制,ADS-B目前很难覆盖海洋。

在巡航高度(30000英尺以上),Flightradar24覆盖100%的欧洲和美国。在加拿大、墨西哥、加勒比海、委内瑞拉、哥伦比亚、厄瓜多尔、秘鲁、巴西、南非、俄罗斯、中东、巴基斯坦、印度、中国、台湾省、日本、泰国、马来西亚、印度尼西亚、澳大利亚和新西兰,ADS-B的覆盖面和范围也不错。在世界其他地方,ADS-B的覆盖范围是不同的。Flightradar24通过FR24接收器不断增加其在世界各地的覆盖范围。

MLAT在一些覆盖多个FR24接收机的区域,Flightradar24还使用到达时间差(TDOA)方法,通过多点定位(MLAT)计算没有ADS-B的飞机的位置。通过使用老式的

这些飞机的位置可以通过飞机模式应答器接收信号的时间来计算。需要四个或更多fr24接收器来接收来自同一平面的信号,以使MLAT工作。只有在大约3000-10000英尺以上才能实现MLAT的覆盖,因为随着高度的增加,四个或更多接收器接收转发器信号的概率增加。

目前,欧洲和北美的大部分地区被高度超过3000-10000英尺的MLAT所覆盖。墨西哥、巴西、南非、印度、中国、日本、台湾省、泰国、马来西亚、印度尼西亚、澳大利亚和新西兰也有部分MLAT覆盖。随着Flightradar24不断向网络添加新的接收器,更多的地区将得到MLAT的覆盖。

基于卫星的飞行跟踪是Flightradar24寻求全球ADS-B覆盖的最新举措。配备ADS-B接收器的卫星从地面ADS-B网络覆盖区域之外的飞机收集数据,并将数据发送到Flightradar24网络。Flightradar24上可用的基于卫星的ADS-B数据来自多个供应商。因为提供数据的卫星数量及其位置是动态的,所以卫星的覆盖范围也是不同的。一般来说,基于卫星的ADS-B增加了飞越海洋的覆盖范围,而地面接收是不可能的。只有装有ADS-B转发器的飞机才能被卫星跟踪。

估计

当飞机飞出覆盖区域时,如果飞行目的地已知,Flightradar24将持续估计飞机的位置,最长可达2小时。对于没有已知目的地的飞机,位置估计可以达到10分钟。该位置是根据许多不同的参数计算的,在大多数情况下都相当准确,但对于长途飞行来说,在最坏的情况下,该位置可能会偏离约100公里(55英里)。在设置中有一个选项可以设置你希望在地图上看到预计平面的时间。

如何开发一个飞行跟踪程序这个教程将帮助你使用飞行雷达24(https://cesium.com/blog/2020/08/13/flightradar24/)收集的雷达数据来构建你的第一个铯应用程序,并以可视化的方式跟踪从三藩市到哥本哈根的真实飞行。

接下来,您将学习如何:

在Web上设置和部署铯应用程序

添加全球3D建筑、地形和图像基础图层

通过位置列表,可以准确显示飞机的连续行程。

我们将从Cesiuion(一个用于流媒体传输和3D内容托管的开放平台)获得全球卫星图像、3D建筑和地形数据。

如果您没有Cesiuion帐户,请点击此处(https://cesium.com/ion/signup)免费注册。

登录完成后:

转到https://cesium.com/ion/tokens选项卡。

请注意默认令牌(https://铯. com/ion/signin/tokens)旁边的复制按钮,我们将在下一个操作中使用它。

Cesiuion是一个用于流媒体和3D内容托管的开放平台,您可以使用其中提供的选定全局数据创建自己的实际应用程序。

1、设置铯应用

这里我们使用开源JS引擎CesiumJS来创建自己的应用,同时使用在线IDE Glitch来托管应用结果。

使用基本模板创建一个新的Glitch项目(https://glitch.com/edit/#!/remix/铯模板).

单击左侧面板中的index.html查看应用程序代码。

将您的_token_here替换为我们从令牌页面获得的访问令牌。

单击上面的“显示”,然后选择代码旁边的以运行应用程序。

此时,index.html的代码将做三件事:

导入CesiumJS库。用下面两行加载JS和CSS文件:

为场景添加HTML容器:初始化查看器:

常量查看器=新铯。查看器(' cesiumContainer ');现在我们已经在浏览器中运行了最基本的CesiumJS应用程序,它包含来自铯离子的全球卫星图像。

配置自动刷新故障,以在每次代码更改时自动刷新当前页面。您可以单击左上角的项目名称,取消选中相应的框以切换到不自动刷新:

使用应用程序窗口顶部的刷新按钮重新运行当前应用程序:

2、添加全球3D建筑和地形

接下来,我们添加一些全局层到场景中。默认情况下,您的铯离子帐户可以访问以下资产:

铯世界地形(https://铯. com/platform/铯离子/内容/铯世界地形/) ——高分辨率地形,精度1m。

铯osm建筑(https://铯. com/platform/铯-离子/内容/铯-osm-建筑/) ——通过OpenStreetMap提供了超过3.5亿栋建筑的数据。

Bing地图航空影像——全球卫星影像,分辨率15cm。

此时,您的应用程序已经使用了Bing地图图层。

1在index.html,用下面的代码替换您的JS代码,但是保留以前使用的访问令牌行。

//从here.const viewer=new铯之前保留您的“铯. ion . defaultaccesstoken=' your _ token _ here '”行。Viewer('cesiumContainer '{terrainProvider:铯. createworldterrain()});通过单击和拖动来浏览场景。手动按住CTRL键调整摄像机角度。

请注意,放大时会加载更多高级细节。请根据实际精度要求选择可视化比例。

在这里,我们使用3D Tiles,这是一个开放的标准,可以将内容传输到任何设备。感兴趣的朋友,请点击这里(https://cesium.com/docs/tutorials/ion-intro/)了解如何将自己的数据转换成三维瓷砖。

3、可视化每个单独的样本。

FlightRadar24使用多种方法跟踪空中交通,包括雷达信号。为简单起见,这里我们将雷达数据直接复制到应用程序中。但是您也可以扩展相应的代码,以便稍后分析原始数据,甚至可以在将样本从服务器传输到应用程序的过程中实时可视化空中交通。感兴趣的朋友可以点击这里(https://s3.amazonaws.com/cesiumjs/downloads/flightradar 24 _ sfo _ to _ cph _ sk 936 . CSV)下载原始航班数据。

1添加以下代码来可视化场景中的单个点,并将相机引导到该点。

点击红点查看更多说明。该描述可用于附加信息,例如每个点的确切位置或捕获时间。

此处的代码片段太长。请检查:

https://铯. com/learn/cesiumjs-learn/cesiumjs-flight-tracker/

4、要显示完整的雷达样本,请用以下代码片段替换上面的代码(步骤3)。

此处的代码片段太长。请检查:

https://铯. com/learn/cesiumjs-learn/cesiumjs-flight-tracker/

现在,我们可以看到该航班完整的雷达样本,从登机口、跑道到降落在哥本哈根机场。

我们用的是什么坐标系?

CesiumJS中的坐标使用ECEF格式的Cartesian3类。在这个系统中,原点(0,0,0)代表地球的中心。

因此,我们使用Cartesian3.fromDegrees将经度、纬度和海拔转换为ECEF的x、y和z。

CesiumJS的高度单位为米,与WGS84一致。我们对雷达数据进行了预处理,将相对于平均海平面高度的英尺转换为米。

5、随时间可视化飞行轨迹。

至此,我们已经完成了雷达样品的可视化。CesiumJS具有内置支持,允许在连续收集的样本之间进行插值,因此您可以看到飞机在任何给定时刻的位置。

我们还将创建SampledPositionProperty来存储位置和时间戳。源数据不包含每个样本的时间戳,但由于我们清楚地知道跟踪的航班号是SK936,计划于太平洋标准时间2020年3月9日下午4: 10起飞。这里,我们假设位置样本的采样间隔是30秒。

1在index.html用以下代码替换所有JS代码,只保留开头确定的接入令牌线。

2飞行动画:

使用左下角的按钮播放/暂停动画。

单击并拖动查询时间线以切换场景时间。

双击地面上的任意位置,解除相机与移动实体的绑定。

此处的代码片段太长。请检查:

https://铯. com/learn/cesiumjs-learn/cesiumjs-flight-tracker/

从这次跨大西洋飞行中,我们可以看到为什么3D可视化可以大大降低理解数据的难度。而雷达样本的连线多为直线,我们可以使用2D地图上常见的Web墨卡托投影,用曲线来表示飞机的起降轨迹。

6、上传飞机模型

在最后一步中,我们将飞机的3D模型添加到实体中,并替换简单的绿色圆圈。

1下载飞机的3D模型(https://S3 . amazonaws . com/cesiumjs/downloads/cecium _ air . glb)。

2转到account dashboard,将模型文件拖到此页面。

3选择3D模型(转换为glTF),然后点击上传。

4处理后,您可以通过在仪表板中选择新资产并查看右侧的预览窗口来找到资产ID。

7、添加飞机模型

1删除下列行后的所有代码:

//step4code(绿色圆圈实体)2替换为下面的代码。

3用您的资产标识替换您的资产标识部分。

此处的代码片段太长。请检查:

https://铯. com/learn/cesiumjs-learn/cesiumjs-flight-tracker/

现在,我们有了一个可以连续跟踪飞行雷达样本的飞机模型!如果你有自己的3D模型,你也可以试着把它添加到场景中。

回顾唐子红


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: cad中bin格式如何转换为dwg格式(bin文件格式转换cad)

下一篇: 小米5x刷新率(小米手机怎么看刷新率)



推荐阅读