读取数据

最近更新

公开 API 返回地图所绘制的六边形,可以是最近一次更新,也可以是某个保存的日子,不包含原始飞机位置。完整的模式定义见 OpenAPI 3.1。

嵌入地图

实时地图可以免费嵌入。把这段代码粘贴到你希望它出现的位置:

非常适合想要一张实时、可引用的地图却不想自己制作的新闻网站、研究项目、博客和教学页面。

<iframe src="https://gpsinterference.com/embed" width="640" height="400"
        style="border:0;width:100%;max-width:960px" loading="lazy"
        title="Live GPS interference map"></iframe>
<p>Live map: <a href="https://gpsinterference.com/">GPS Interference</a></p>

在下面进行设置并复制代码,或自行添加选项。

选项

把以下任意选项添加到 https://gpsinterference.com/embed 后,用 & 连接:

选项取值作用
regionbaltic-sea, eastern-europe, black-sea, eastern-mediterranean, middle-east, east-asia, finland, estonia, latvia, lithuania, kaliningrad, poland, norway, romania, turkey, cyprus, israel, lebanon, south-korea, north-korea, japan, china, taiwan, philippines, vietnam, sweden, denmark, germany, iceland, united-kingdom, ukraine, belarus, moldova, bulgaria, georgia, armenia, azerbaijan, greece, egypt, iran, iraq, syria, jordan, saudi-arabia, united-arab-emirates, qatar, austria, russia, persian-gulf打开时显示该地区,并适配框架大小。
bboxsouth,west,north,east打开时显示任意区域,单位为度,例如 bbox=30,-120,40,-105。
lat、lon、zoom数字打开时以中心点和缩放级别代替区域。
lock1让读者留在区域内:他们可以在区域内平移和缩放,但不能离开。
stylesatellite(默认)、globe、dark、light、streets六边形下方的底图:深色、适合白色页面的简洁浅色地图、街道,或带边界和地名的卫星图。地图由 MapTiler 提供。
langauto、en, no, uk, pl, tr, es, fr, de, ar, zh, he地图文字的语言:auto 使用读者浏览器的语言,也可以指定一个代码。不设置时为英语。地区页面使用它们自己的语言。
nameson、off(默认)地图上的地名。
altall(默认)、low、mid、high、cruise只显示某一高度段内的飞机:5,000 英尺以下、5,000–15,000 英尺、15,000–30,000 英尺或 30,000 英尺以上(气压高度)。记录高度之前保存的日子显示所有飞机。
dateYYYY-MM-DD显示某个保存的日子而不是最新地图,适合报道那一天的文章。

最新时段

GET https://api.gpsinterference.com/v1/interference/latest

GET https://api.gpsinterference.com/interference.json 是同一份文档,供地图使用。它包含一个 UTC 日的航班 history_date,每天约 05:00 UTC 重新生成一次。

某一个 UTC 日

GET https://api.gpsinterference.com/v1/interference/YYYY-MM-DD

该 UTC 日最后一次更新时的地图(并非只统计当天的航班),字段与最新摘要相同,另加 archive_date 和 complete。当这一天仍是今天并可能被替换时,complete 为 false;已结束的日子永远不会改变。没有保存地图的日期返回 404 和 {"error":"no archive"}。

GET https://api.gpsinterference.com/v1/interference/days 列出每个保存的日子:date、updated 和 hexes(数量),不含多边形。

六边形字段

字段含义
h单元 id,Web 墨卡托六边形网格上的 column_row。
g该单元中 NACp 始终高于 7 的不同飞机数。
b在该单元中至少一次报告 NACp 为 7 或更低的不同飞机数。
p受影响比例,百分数,保留一位小数:100 × b ÷ (g + b)。颜色依据此值。
c低于 3% 为 g,3% 至 10% 为 y,10% 起且至少 2 架受影响飞机为 r,超过 50% 且至少 12 架受影响飞机为 p,依据四舍五入后的 p。
poly由 [latitude, longitude] 坐标对组成的环,单位为度。

单元是 Web 墨卡托网格上的平顶六边形,经度半径为 0.34°(在赤道处从中心到顶点约 38 公里,在北纬 54° 处约 22 公里)。少于 3 架飞机的单元不包括在内。

bands(2026 年 10 月 26 日起的摘要)按气压高度拆分同样的计数:edges_ft 为 [5000, 15000, 30000],hexes 包含四个列表,分别对应 5,000 英尺以下、5,000–15,000 英尺、15,000–30,000 英尺和 30,000 英尺以上。每一项为 { h, g, b },多边形和比例取自主列表中 h 相同的六边形(p = 100 × b ÷ (g + b),c 的阈值相同)。某个高度段中少于 3 架飞机的单元不包括在该高度段内。在一个单元内改变高度段的飞机在每个高度段中各计一次,所以四个高度段相加不等于主计数;在地面上或没有高度的飞机只计入主计数。

顶层字段:history_date 是航班所在的 UTC 日;updated 是摘要写入的时间(UTC);grid 为 mercator-r0.34;window_minutes 为 1440,即一天;sources 为 adsb.lol-globe-history 加上生成它所用的 adsb.lol 版本,例如 adsb.lol-prod-0。2026 年 10 月 26 日之前保存的摘要可能缺少 history_date,并带有旧的实时采集留下的 polled_points、grid_points 和 failed_points。

缓存、CORS 和限制

最新摘要、今天保存的日子和日期索引以 cache-control: public, max-age=60 发送。已结束的日子以 max-age=86400 发送。

浏览器 CORS 只允许 https://gpsinterference.com 和 https://www.gpsinterference.com,因此其他网站无法从其访问者的浏览器读取 JSON;curl 和服务器端请求不受影响。没有固定的速率限制,但过于频繁的请求可能会被限流。数据每天变化一次,所以请遵循缓存头,而不要轮询。

署名

飞机数据来自 adsb.lol 的 globe history,按开放数据库许可证(ODbL)共享。请引用 https://gpsinterference.com。报告的精度低并不等于已确认的压制,也不能识别干扰源。底图图块是独立的,不属于本 API。

引用数据

请引用你所使用的保存日:最新地图每天都在变化,但保存的日子不会。

APA

GPSInterference.com. (2026). GPS interference hexagon data [Data set]. https://gpsinterference.com/docs

某一个保存的日子:

GPSInterference.com. (2026). GPS interference hexagon data, 25 October 2026 [Data set]. https://api.gpsinterference.com/v1/interference/2026-10-25

BibTeX

@dataset{gpsinterference_2026,
  author       = {{GPSInterference.com}},
  title        = {GPS Interference Hexagon Data},
  year         = {2026},
  publisher    = {GPSInterference.com},
  url          = {https://gpsinterference.com/docs},
  note         = {Built from ADS-B flight tracks from adsb.lol globe history, available under the Open Database License (ODbL). Low reported accuracy (NACp 7 or lower) is not confirmed jamming. For one UTC day, use https://api.gpsinterference.com/v1/interference/YYYY-MM-DD}
}

示例

curl -sS "https://api.gpsinterference.com/v1/interference/latest"
curl -sS "https://api.gpsinterference.com/v1/interference/2026-10-25"

在 JavaScript 中,于本网站或服务器上:

const res = await fetch("https://api.gpsinterference.com/v1/interference/latest");
if (!res.ok) throw new Error(String(res.status));
const data = await res.json();
// data.hexes[i] is { h, g, b, p, c, poly }

方法页面说明了计数是如何得出的。

A monkey typing on a laptop