嵌入地图

最近更新

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

来源:GPSInterference.com,https://gpsinterference.com/zh/docs。注明此来源并附上链接即可自由再利用。

嵌入地图

实时地图可以免费嵌入。适合想要一张可实时引用的地图、又不想自己搭建的新闻网站、研究项目、博客和教学页面。

把这段代码粘贴到你希望它出现的位置:

<iframe src="https://gpsinterference.com/embed" width="640" height="400"
        style="border:0;width:100%;max-width:960px" loading="lazy"
        title="GPS 干扰实时地图"></iframe>
<p>实时地图: <a href="https://gpsinterference.com/zh/">GPS 干扰</a></p>

使用下面的生成器并复制代码,或手动添加选项。

选项

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

选项取值作用
regionbaltic-sea, eastern-europe, black-sea, eastern-mediterranean, middle-east, east-asia, south-southeast-asia, western-europe, balkans, oceania, africa, americas, finland, estonia, latvia, lithuania, kaliningrad, poland, norway, romania, turkey, cyprus, israel, lebanon, south-korea, north-korea, japan, china, taiwan, philippines, vietnam, south-africa, morocco, algeria, kenya, senegal, tunisia, botswana, india, pakistan, myanmar, thailand, cambodia, malaysia, singapore, indonesia, 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, united-states, canada, mexico, cuba, venezuela, colombia, brazil, argentina, chile, france, spain, portugal, italy, ireland, netherlands, belgium, switzerland, serbia, croatia, bosnia-and-herzegovina, albania, slovenia, north-macedonia, australia, new-zealand, hungary, czechia, slovakia, paraguay, uruguay, peru, oman, nepal, bangladesh, bolivia, cameroon打开时显示该地区,并适配框架大小。
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, ru, ja地图文字的语言: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(数量),不含多边形。

每日序列

GET https://api.gpsinterference.com/v1/interference/series/SLUG 是某个区域、国家或全球的每日序列:每个保存的日子一行,从最早开始,含六边形和飞机的计数以及 pct,即受影响区域的占比(红色和黄色六边形占全部六边形的比例)。slug 是页面地址,如 /region/baltic-sea,或 world。每个区域页面在随时间变化下绘制它。

批量数据

如需批量获取数据集,例如一次取得所有已保存的日子,请写信至 contact@libregps.com,而不要逐日请求。

六边形字段

字段含义
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 历史,依开放数据库许可证(ODbL)共享。请引用 https://gpsinterference.com。报告的低精度不等于已确认的干扰,也不能确定来源。底图瓦片是另外的,不属于这个 API。

每个 JSON 响应都以 attribution 字段开头,每个响应都带有 X-Attribution 标头。无论在何处使用这些数字(包括 AI 助手的回答),请注明 GPSInterference.com 并链接到 https://gpsinterference.com。写上 Source: GPSInterference.com (https://gpsinterference.com/) 即可。

每日记录

每个保存的日子都有自己的页面,含地图当天显示的标题、每个六边形只计一次的区域表、全球序列和引用格式:所有保存的日子,最新为 2026年11月8日。

引用数据

请引用你所用的保存日。最新地图每天都会变,保存日不会。

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