帮助
SpotFlight 是什么
SpotFlight 把你的 iPhone 变成一台搜寻器,专门对着你头顶的天空。把手机对准一架飞机,实时相机画面就会为它加上标注:呼号、机型、高度、距离,以及——如果知道的话——这趟航班从哪儿来、要到哪儿去。
另外三个视图在背后支撑它。一张你周围空中交通的地图,按相机此刻覆盖的确切扇形绘制,让你看清朝那个方向转过去能捕捉到什么。一份附近列表,由近及远,包含数据真正支持的每一项数值。以及一个搜索,可按航班号、呼号、注册号或 ICAO 地址找到某一趟具体航班,并为你指出它在天空中的位置。
SpotFlight 还会预测两件靠运气很难碰上的事:有飞机即将从你头顶近距离经过,以及从你所站的确切位置看过去,有飞机即将穿过太阳或月亮的圆面。
位置数据通过我自己的中继到达应用,中继在内存中保存一份全球空中交通的快照。而这份快照本身,来自由志愿者架设、社区运营的免费 ADS-B 接收机网络,adsb.lol 就是其中之一——我的中继无法访问时,应用回退的也正是 adsb.lol。出发与到达城市来自 adsbdb.com。SpotFlight 没有账号、没有订阅、没有数据统计。唯一的广告是一段激励视频,由你自己选择播放,而且在最初 24 小时内绝不出现——见下文。
运行要求:一台运行 iOS 17.0 或更高版本的 iPhone、能联网,以及一处看得见天空的地方。竖屏方向。SpotFlight 可在 iPad 上以 iPhone 兼容模式运行,但它是为手机设计的。
常见问题
我一架飞机都看不到,怎么回事?
按顺序逐条排查——答案几乎总在其中之一。
1. 检查网络连接。SpotFlight 没有离线模式,每一个位置都是实时获取的。2. 检查定位是否已允许。设置 → SpotFlight → 位置 → 使用 App 期间。没有你的真实位置,SpotFlight 无法提出“这附近有什么在飞”这个问题,你看到的飞机也就不是你头顶的那些。3. 打开“附近”标签页。它会显示一个简单的计数,以及数据的时龄,以秒计。如果那里有飞机而相机视图看起来空空如也,问题出在你朝哪儿指,而不在数据——见下一个问题。4. 往高处指。巡航中的飞机大约在 10 至 12 公里高度。如果你对着接近地平线的方向,看到的多半是位于地平线以下的飞机——SpotFlight 会把它们画成橙色,并告诉你它们被地球曲率挡住了。5. 考虑你所在的位置。覆盖来自在家架设接收机的志愿者。欧洲和北美密集,海洋、沙漠和人烟稀少的地区稀薄。低空飞行的飞机即便在覆盖良好的地区也常常不可见,因为 ADS-B 接收依赖视距。6. 看看时间。凌晨四点的乡村上空,可能真的什么都没有。
如果“附近”里的数量正常,但你确信列出的飞机并不在你附近,那多半是应用没有用上你的位置——见第 2 点。
飞机不在标签所说的位置上,为什么?
因为你 iPhone 的罗盘是这条链路上最薄弱的一环。这件事值得弄明白,而不是绕开。
SpotFlight 的计算是精确的。它全程使用 WGS84 椭球体,把坐标转换到地心坐标系,让地球曲率算得精确,而不是近似,并修正每一个 ADS-B 位置所携带的两种不同延迟。这些误差都很小。
iPhone 的磁力计则不然。航向误差在 5° 到 15° 之间,取决于你周围有什么——一辆车、一根钢栏杆、一个阳台、一台笔记本电脑、一个磁吸保护壳。在 40 公里处,10° 的误差会把标签放到飞机侧向约 7 公里的地方。应用中其余所有误差来源都比它小上几个数量级。
实际在屏幕上看到的,并不是“飞机丢了”。测试量过:5° 的误差会让标签偏离约画面半宽的 15%,15° 则约 46%。飞机仍在视野内。丢失的是配对关系——哪个标签对应哪个亮点。
所以 SpotFlight 让你用手校正,这才是可靠的答案。
航向微调是什么,怎么用?
在相机视图上任意处拖动手指。整个叠加层随手指旋转,同时有一个读数显示你已校正了多少度。把标签对齐到你真正看得见的那架飞机上,松手,屏幕上其余的一切——每一个其他标签、地平线、地图上的视场扇形——从那一刻起都是正确的。另有一个按钮可以把校正清零。
这是刻意为之,不是为了掩盖缺陷。没有任何软件能还原磁力计报错的航向;你的眼睛可以,大约两秒钟。一架你能确认无疑的飞机,就校准了整片天空。
微调前有两件事有帮助:离金属和汽车远一点;如果 SpotFlight 显示校准提示,拿着手机画几秒钟“8”字——那是 iOS 在重新校准罗盘。设置界面会显示罗盘自报的精度,以及该误差在 40 公里处折合多少米。
为什么有的航班不显示出发或到达城市?
因为飞机并不广播这条信息。ADS-B 应答机发送的是位置、高度、速度、航迹和呼号——不发送航线。SpotFlight 依据呼号,到另一个独立数据库中去查这条航线。
那个数据库并不知道所有航班。你看到的飞机中大约四分之一没有航线:公务机、私人飞机、军用飞机、调机与摆渡航班,以及刚刚分配的呼号。SpotFlight 把航线当作装饰,从不当作必需——航线未知时,应用干脆什么都不显示,而不是猜。
你可以在设置中完全关闭航线查询。关闭后,SpotFlight 不会向航线服务发出任何请求。
能离线使用吗?
不能。SpotFlight 需要实时的网络连接,也没有缓存下来的“最后已知天空”。位置只有在新鲜时才有意义——一架巡航中的飞机每秒飞行约 250 米,而凡是两分钟没有更新的位置,SpotFlight 一律丢弃,而不是去编造飞机可能在哪儿。
数据用量不大:小体积的 JSON 响应,没有图片,没有视频,没有上传。
哪些飞机看不到,为什么?
有好几类,知道了总比纳闷强:
- 不广播的飞机。大多数军用飞机和许多私人飞机,要么不发送 ADS-B,要么发送时不带位置。
- 广播但不带位置的飞机。SpotFlight 收到的记录中约有 8% 只有 Mode S,没有坐标。它们会被丢弃,“附近”标签页会告诉你有多少。
- 没人接收得到的飞机。ADS-B 依赖视距。如果没有任何志愿者接收机能看见那片天空——海面上、山区上空、空旷的原野上——不管飞机广播得多好,网络都看不见它。
- 低空交通。轻型飞机、直升机,以及在小型机场起落航线里飞的飞机,往往在接收机的地平线以下。
- 滑翔机、气球、无人机和大多数直升机,它们通常不装 ADS-B 发射设备。
注册号和机型有时也会在广播本身中缺失。SpotFlight 此时留空,而不是给出猜测。
我的位置会被共享吗?
你的坐标会发送到我的中继——如果它无法访问,则发送到 api.adsb.lol——除此之外哪儿都不去,因为它们就是要问的那个问题:“这个点附近有哪些飞机?”不发送这个点,就无法得到答案。SpotFlight 打开且处于前台时,这个请求向我的中继大约每秒发一次,向公共回退服务每七秒发一次——在后台则完全不发。
其余的一切,答案都是“没有”:
- 没有账号、没有登录、没有用户标识、没有设备标识。随坐标一起发送的东西里,没有任何一样能把坐标和你联系起来。
- 没有数据统计、没有追踪、没有崩溃报告。没有任何东西统计你的点击,也没有任何东西跨应用追踪你。
- 没有不请自来的广告。只有一段可选的激励视频能解锁凌日与凌月预测,而且只在你点下提供它的那个按钮时才会。在最初 24 小时内不会请求任何广告,解锁期间也不会。Google 的广告库确实会在应用启动时完成自身初始化——这个库就是这么写的,我阻止不了——但在你点下那个按钮之前,它不会去取任何东西。
- 相机图像绝不离开手机,应用甚至根本不读取它们。相机只提供实时背景,并报告镜头的真实视场。什么都不拍摄、不分析、不保存。
- 绝不在后台使用位置。SpotFlight 没有任何后台模式,你一离开应用它就停止接收位置。
- 除三项偏好设置外,什么都不保存(地图范围、凌日与凌月预测开关、航线开关),它们就存在你手机上的应用内部。
SpotFlight 与三台服务器通信。位置来自我的中继,中继无法访问时来自 api.adsb.lol;航线城市来自 api.adsbdb.com。后两者是由其他人运营的免费社区服务。与你访问的任何网站一样,这三台都会看到请求,以及它来自哪个 IP 地址——但我的那台既不记录该地址也不记录你的坐标,这一点在隐私政策中有准确说明。
凌日与凌月预测如何工作——安全吗?
安全第一:绝不要直视太阳,无论手里有没有手机。那可能在几秒钟内造成不可逆的眼部损伤。请在屏幕上观看凌日,把手机举在你与太阳之间,让太阳本身处于你的视线之外。另外,也不宜让相机长时间对着太阳。
工作原理:SpotFlight 从你的确切位置计算太阳和月亮所在的方向,沿当前航迹外推每一架飞机,并寻找两个方向重合的时刻。它最多向前搜索五分钟,每十秒重算一次,并告诉你何时看、往哪儿看、这次穿越会持续多久。它还用角距离把真正的穿越——飞机确实咬进圆面——和擦边而过区分开。
天文部分已对照 NASA JPL 的 DE421 星历表验证过,覆盖南北半球五个地点和一年中的五个时刻:最差情况下太阳误差 28 角秒,月亮 46 角秒。月面直径约 1 860 角秒,因此这大约是月面半径的四十分之一。月亮的位置是按你在地面上的点计算的,而不是地心——在 384 000 公里的距离上,这一差别接近整整一度,是月面直径的两倍,所以不能省略。
两点如实相告。第一,要快:一架 30 公里外的飞机穿过太阳约需一秒,10 公里外则不到半秒。请提早准备好,盯住屏幕。第二,预测假定飞机保持当前的航向、速度和爬升率,因为 ADS-B 不携带飞行计划。飞机一转弯,这次穿越就取消。发生这种情况时 SpotFlight 会自动撤回预测,但没有任何东西能预见那个转弯。
凌日与凌月预测可在设置中关闭。
彩色圆圈是什么意思?
绿色——在你的地平线以上:飞机就在你面前的天空中,你有机会看到它。橙色——在你的地平线以下:方向和距离都正确,但地球曲率挡在你和飞机之间。红色——飞机正在发出紧急代码。
为什么提醒说有飞机将近距离经过,然后什么也没发生?
因为它转弯了、减速了,或者开始下降了。不论是近距离通过还是凌日、凌月,每一次预测都假定飞机继续做它此刻正在做的事,这是数据唯一能支撑的假设。SpotFlight 每秒重算一次,预测一旦不再成立就撤回提醒——但在它显示的那段时间里,它是真的。
你可以在设置中更改“近距离”的判定距离(3 到 50 公里,默认 15)以及提前多久提醒(30 秒到 5 分钟,默认 90 秒)。
提醒会刻意忽略仰角一度以下发生的通过。否则在大型机场附近,十公里外的每一次进近着陆都会不断触发提醒——技术上确实是近距离通过,但不是值得你抬头的那种。
我搜了一个航班号,什么都没找到,或者找到了错的飞机。
两个真实存在的限制,SpotFlight 在你搜索之前都会提醒你。
有些航空公司使用的呼号与机票号毫无关系。Ryanair、easyJet、Transavia、Wizz Air 和 Jet2 会分配动态的字母数字呼号——真实例子:EZY46AB、RYR70LT、TVF715E。没有办法从航班号推导出它们。请改用注册号搜索(例如 G-EZBI),这个办法总是管用。
一个航空公司代码可能对应多个。easyJet 同时以 EZY 和 EJU 飞行,所以 SpotFlight 会逐个尝试。
另外,搜索只能找到网络此刻看得见的飞机。尚未起飞、已经落地,或正在某片海洋上空的航班都找不到。如果确实在大陆另一端找到了某趟航班,SpotFlight 仍会给出它的方位和距离——只是会如实告诉你,它在你的地平线以下。
为什么屏幕上的数字一直在轻微变化?
因为显示的每一个位置都是外推出来的,不是测量出来的。从网络来的位置,抵达时就已经带着时龄,而在它到达你的屏幕之前还会再过去一些时间。SpotFlight 修正这两种延迟,沿航迹把飞机往前推——每来一个新鲜位置,估计值就换成更好的。
时龄超过 20 秒时,SpotFlight 会在标签上说明,并附上自上一个真实定位以来飞机飞过的距离。超过 120 秒,它会直接丢弃这架飞机,而不是给你看虚构的东西。
SpotFlight 使用什么单位?
设置中有四个选项:自动,跟随设备的地区设置;公制(公里、米、公里/时);英制(英里、英尺、英里/时);以及航空(海里、飞行高度层、节)——驾驶舱的惯例。
支持横屏吗?支持 iPad 吗?
目前仅支持竖屏。应用可在 iPad 上以 iPhone 兼容模式运行,但它是为 iPhone 设计和测试的。
我需要再次付费或者订阅吗?
没有订阅,也没有任何东西需要购买。安装后的最初 24 小时完全开放——没有视频、没有提示、什么都不向你索取。之后,看一段短视频就能把增强现实视图和凌日、凌月预测再解锁 24 小时——视频由你自己启动。地图、列表、搜索和近距离通过提醒始终免费可用。广告绝不会自行出现:你会看到的唯一一则,是你选择播放的那一则。
它很费电。
意料之中。SpotFlight 同时运行相机、运动传感器、GPS,并每隔几秒发一次网络请求——负载和任何用到相机的应用差不多。用完就关掉;没有任何东西在后台运行。
数据来源
实时飞机位置包含来自 adsb.lol 的信息,这些信息在此依据 Open Database License (ODbL) 提供。adsb.lol 是一个由志愿者自建天线供给数据的开放航班追踪平台。
航班航线信息由 adsbdb.com 提供。这些航线数据出自爱丁堡的 David Taylor 和格拉斯哥的 Jim Mason 之手,未经爱丁堡 David J Taylor 的明确许可,不得复制、发布或并入其他数据库。
飞机位置数据按现状提供,不对其准确性、完整性或可用性作任何保证。SpotFlight 供观察与消遣之用,不得用于导航或任何运行用途。
联系方式
欢迎提问、报告问题和提出功能建议——读它们的是一个真实的人。
电子邮件:mouradski@icloud.com
请写明你的 iPhone 型号、iOS 版本、SpotFlight 版本(在设置中可见),以及当时你在做什么。若是位置不准,附上呼号和你大致所在的位置会很有帮助。
通常回复时间:几天。