嵌入地图
最近更新
公开 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 后,用 & 连接:
| 选项 | 取值 | 作用 |
|---|---|---|
region | baltic-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 | 打开时显示该地区,并适配框架大小。 |
bbox | south,west,north,east | 打开时显示任意区域,单位为度,例如 bbox=30,-120,40,-105。 |
lat、lon、zoom | 数字 | 打开时以中心点和缩放级别代替区域。 |
lock | 1 | 让读者留在区域内:他们可以在区域内平移和缩放,但不能离开。 |
style | satellite(默认)、globe、dark、light、streets | 六边形下方的底图:深色、适合白色页面的简洁浅色地图、街道,或带边界和地名的卫星图。地图由 MapTiler 提供。 |
lang | auto、en, no, uk, pl, tr, es, fr, de, ar, zh, he, ru, ja | 地图文字的语言:auto 使用读者浏览器的语言,也可以指定一个代码。不设置时为英语。地区页面使用它们自己的语言。 |
names | on、off(默认) | 地图上的地名。 |
alt | all(默认)、low、mid、high、cruise | 只显示某一高度段内的飞机:5,000 英尺以下、5,000–15,000 英尺、15,000–30,000 英尺或 30,000 英尺以上(气压高度)。记录高度之前保存的日子显示所有飞机。 |
date | YYYY-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-25BibTeX
@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 }
方法页面说明了计数是如何得出的。
