核心信息速览
| 项目 | 详情 |
|---|---|
| 项目名称 | God's Eye View(原名 WorldView) |
| 开发者 | Bilawal Sidhu(前 Google AR/3D 地图产品经理,TED 技术策展人) |
| GitHub 仓库 | github.com/bilawalsidh... |
| 开源协议 | MIT License |
| 开源日期 | 2026 年 8 月 24 日 |
| GitHub 热度 | 2026 年 8 月登顶 GitHub Trending 日榜与周榜双第一 |
| 技术栈 | 原生 JavaScript + CesiumJS + Vite + Google Photorealistic 3D Tiles |
| 核心依赖 | cesium ^1.124.0、satellite.js ^6.0.2、egm96-universal(大地水准面)、mgrs、pbf、@mapbox/vector-tile |
| Node.js 要求 | 24.14.x 或 26.x (package.json engines 强制校验) |
| 数据图层 | 15 个实时/近实时源 ,其中 10 个零 API 密钥即可用 |
| 静态数据集 | 4,351 个数据中心、704 座水坝、712 条海底光缆 |
| 冷启动性能 | 中位数 1.86 秒(M5/Chrome 实测,非硬件要求) |
| 渲染目标 | 纯前端 60 帧流畅渲染,无需后端算力 |

一、它是什么:不是地图,是"公开信号的总装车间"
God's Eye View 的自我描述很克制:"一个在浏览器里的间谍卫星模拟器------然后你意识到数据源是公开的,数据是真实的。"
它把原本散落在几十个浏览器标签页里的公开遥测信号------飞机的 ADS-B 应答机、船舶的 AIS 信标、卫星的轨道根数、USGS 的地震台网、城市公共摄像头------聚合到同一颗照片级真实的 3D 地球上,让你可以从全球态势无缝下钻到一架具体飞机的驾驶舱视角。
项目的核心贡献不是发明了某个数据源,也不是从零写了渲染引擎,而是集成工程:让 15 个互不兼容的实时 feed 在时间、位置和高度上达成一致,再在上面套一层自然语言语音接口,使得你不需要知道答案藏在哪个图层里。
二、数据矩阵:15 个公开源,10 个零密钥
项目的数据表本身就是一份"世界公开了什么"的清单。以下是最核心的实时图层及其参数:
| 图层 | 数据源 | 刷新频率 / 规模 | 密钥要求 |
|---|---|---|---|
| 实时航班 | OpenSky + adsb.lol | 11,000+ 架 ,每 15--30 秒刷新 | 零密钥可用(OAuth 提升额度) |
| 军事航班 | adsb.lol | 实时 | 零密钥 |
| 实时船舶 | AISStream | 最高 12,000 条船舶条目 | 零密钥(免费注册) |
| 卫星星座 | CelesTrak | 838 个对象,SGP4 本地轨道传播 | 零密钥 |
| 地震 | USGS | 滚动 24 小时窗口,实时 | 零密钥 |
| 活跃火点 | NASA FIRMS | 每日更新 | 零密钥 |
| 公共摄像头 | 城市 API(奥斯汀/加州/伦敦等 10 个区域) | 持续 | 零密钥 |
| 交通流 | TomTom + OSM | 无密钥时为沿真实道路的近似模拟 | TomTom 密钥解锁真实数据 |
| 电台 | Radio Browser | 750+ 地理定位电台 | 零密钥 |
| 共享单车 | GBFS | 实时可用性 | 零密钥 |
| 航天任务 | Launch Library 2 | 滚动 30 天任务目录 | 零密钥 |
| 地图底图 | Google Photorealistic 3D Tiles / Bing / OSM | 照片级 3D 瓦片 | Google Maps Key 必需(每月 1,000 次免费 3D 瓦片会话) |
除了实时 feed,项目还内置了三个静态数据集:4,351 个数据中心、704 座水坝、712 条海底光缆。三层同时打开,展示的是现代文明的物理承重结构。
项目对"实时"与"建模"的区分非常诚实:交通层在无密钥时明确标为模拟,摄像头位姿在标定前是估计值,火箭上升回放标为"RECONSTRUCTED ESTIMATE"(重建估算)。每个图层持续显示自己的数据源与新鲜度状态。 
三、技术架构:原生 JavaScript + CesiumJS 的"去框架化"工程
3.1 依赖清单:只有六个专精库
God's Eye View 的 package.json 是一份"反重型框架"的宣言。整个项目没有 React、Angular 或 Vue,只有六个专精依赖:
json
"dependencies": {
"@mapbox/vector-tile": "^3.0.0",
"cesium": "^1.124.0",
"egm96-universal": "^1.1.1",
"mgrs": "^2.1.0",
"pbf": "^5.1.2",
"satellite.js": "^6.0.2"
}
CesiumJS 负责 3D 地球与 Google Photorealistic 3D Tiles 的渲染,satellite.js 处理 SGP4 轨道传播,egm96-universal 处理大地水准面校正,mgrs 和 pbf/vector-tile 处理坐标与矢量瓦片解析。构建工具是 Vite,没有引入任何 UI 框架的运行时开销。
3.2 四个关键工程决策
- 第一,世界稳定的图标朝向 。飞机和船舶在任意相机角度下都沿其真实世界航向指向,靠的是逐帧的屏幕空间航向投影(
iconOrientation.js)。无论正俯视还是看地平线,图标都不会乱转或锁死视口。 - 第二,用"跳变数据"做出顺滑运动。公开实时数据通常每 15--30 秒才到一批。项目故意让地球渲染比实时慢一个轮询间隔,并在已知定位点之间做插值,用航位推算填补空隙,从而实现视觉上的连续运动。
- 第三,诚实的卫星轨道。采用 SGP4 轨道传播,轨道环通过 GMST 重新对齐锁定卫星,避免长期运行后的漂移和逐秒闪烁。
- 第四,站在真实地面上。实体高度经过真实垂直基准面(大地水准面感知,对渲染出的地形网格采样),让飞机停在新停机坪、摄像头立在街角,而不是悬空。
3.3 源码结构
text
src/
├── main.js # 启动:Google 3D Tiles、图层注册
├── ui.js # 运行时 UI --- 面板、HUD、样式、控制门面
├── hud.js # 情报 HUD + AI 场景摘要
├── mapStackController.js # Google 3D / Bing / OSM 切换
├── iconOrientation.js # 屏幕投影的世界空间朝向 + 地平线剔除
├── voice/ # OpenAI Realtime 会话 + 28 个语音工具
├── data/ # 每个图层一个模块 + 管理 + 上下文存储
└── scenes/ # 电影级场景导演

四、语音 Agent 与驾驶舱模式
语音层基于 OpenAI Realtime API,28 个工具被划分为四类角色:
| 角色 | 能力 |
|---|---|
| 无人机驾驶员 | 导航到位置、环绕、缩放、重置 |
| 白板 | 绘制边界、测量距离、标注基础设施、放置持久图钉 |
| 分析师 | 计数实体、按属性过滤、对屏幕内容做时间预测 |
| 控制台 | 切换图层、切换传感器风格、调整检测密度 |
工具设计遵循"窄动词、可组合"的原则:模型不被要求理解 Cesium 的相机数学,只需从 28 个定义良好的动作中选择匹配请求的那一个。语音会话按分钟计费,内置 $5 单次会话硬上限,防止失控调用。
驾驶舱模式是项目的标志性交互:镜头跟随一架被追踪的航班,一路贴着真实地形俯冲 ,同时维护一个以目标为中心 250 km 半径的实时"联系人"名单,可一键切换任意飞机的驾驶舱。传感器滤镜(CRT、夜视 NVG、FLIR 热成像、黑白、雪景)不是纯装饰,而是不同的场景阅读方式。
五、部署与配置:本地优先,密钥不出机器
5.1 环境要求
| 项目 | 要求 | ||
|---|---|---|---|
| Node.js | 24.14.x 或 26.x (package.json engines 强制:`>=24.14.0 <25 |
>=26 <27`) | |
| 浏览器 | 支持 WebGL 2 的现代浏览器 | ||
| 唯一必需密钥 | Google Maps API Key(照片级地球底图) | ||
| 可选密钥 | OpenSky OAuth、AISStream、TomTom、NASA FIRMS、OpenAI(语音) |
5.2 最简启动
bash
git clone https://github.com/bilawalsidhu/gods-eye-view.git
cd gods-eye-view
npm ci
npm run doctor # 环境检查
npm run dev # 启动开发服务器,默认 localhost:4173
然后打开 http://localhost:4173。
5.3 环境变量配置
bash
cp .env.example .env
# 在 .env 中填入 GOOGLE_MAPS_API_KEY(必需)
# 其余密钥可选,不填则对应图层以零密钥模式运行
5.4 零密钥启动
不填任何密钥也可以启动。10 个图层直接可用;Google 3D 底图需要密钥,但项目提供了 Bing aerial 和 OSM 作为替代底图选项。
5.5 Docker 部署
社区有 NAS/Docker 部署方案:构建镜像后运行 npm run preview -- --host 0.0.0.0 --port 4173,将端口映射出去即可。
5.6 密钥与配额治理
项目的密钥处理设计相当克制:OpenAI、AISStream、OpenSky OAuth、TomTom、FIRMS 等带密钥的提供商全部走服务端代理,代理目标固定或加白名单,高风险路径额外加了有界请求、超时、响应上限和错误净化。唯一故意暴露给浏览器的只有 Google Maps 和 Cesium ion 的凭据。付费 feed 跑在带缓存、受预算治理的代理之后------OpenSky 信用限速器、TomTom 每日瓦片预算、磁盘缓存的 TLE------避免一个下午的探索烧光 API 额度。
六、性能实测与边界
| 指标 | 数据 |
|---|---|
| 冷启动 | 中位数 1.86 秒(M5/Chrome 点测,非硬件保证) |
| 渲染帧率 | 纯前端目标 60 帧,无需专业设备或后端算力 |
| 航班规模 | 11,000+ 架实时飞机 |
| 船舶规模 | 最高 12,000 条 AIS 条目 |
| 卫星目录 | 838 个对象(SGP4 本地传播) |
明确的边界 :项目 README 开头就声明这是"公开与第三方数据的探索性可视化,不得用于导航、应急、医疗或投资决策 "。它不包含人脸识别或人员搜索功能。交通层在无密钥时是沿真实道路的模拟,不是实时车流。它是一个优秀的 CesiumJS 参考实现和 OSINT 探索客户端,而不是 hardened 的生产级服务。
七、小结
God's Eye View 的价值可以用一句话概括:它证明了"集成"本身就是一种深度的工程能力。
每个数据源都是公开的,CesiumJS 已经存在了十年,OpenAI Realtime API 对任何人开放。真正的难点在于:让 15 个互不兼容的实时 feed 在时间、位置和高度上达成一致,用跳变数据插值做出顺滑运动,用大地水准面校正让实体站在真实地面上,用预算治理和密钥代理让一个下午的探索不至于烧光额度,最后再套一层 28 工具的窄动词语音接口,让自然语言成为唯一需要学习的前端。
对于技术从业者,它的借鉴意义集中在三个层面:去框架化的原生 JavaScript + CesiumJS 架构 (六个依赖、无 React/Vue 运行时开销)、对"实时"与"建模"的诚实区分 (每个图层持续显示数据源与新鲜度状态)、以及密钥与配额的代理治理模式(服务端代理 + 预算上限 + 白名单固定目标)。这些设计可以平移到任何需要聚合多源实时地理数据的 Web 应用。
需要客观指出的是,项目的完整照片级 3D 地球体验依赖 Google Maps API 密钥(每月 1,000 次免费 3D 瓦片会话),语音 Agent 按分钟计费($5 硬上限),TomTom 交通数据在免费额度外按量计费。零密钥模式可运行,但底图和交通层会降级为替代方案或模拟数据。Node.js 版本被 engines 强制锁定在 24.14.x/26.x,使用其他版本会在 npm ci 阶段被拦截。此外,项目定位为探索与学习客户端,其自身文档明确不建议用于任何 operational 场景------这不影响它作为一个高质量 CesiumJS 工程样本的价值,但意味着在生产环境中使用前需要额外的加固与合规评估。
附录:资源列表
| 类型 | 资源 | 说明 |
|---|---|---|
| ✅ 下载地址 | 点击下载 | MIT License |
| 🌐 在线体验 | maptheworld.ai/ | 官方入口 |
| 📦 Pinokio 一键安装 | pinokio.co/apps/github... | 零命令行启动 |
| 📄 性能基线 | docs/PERFORMANCE.md |
1.86s 冷启动实测 |
| 📄 架构状态 | docs/CURRENT-STATE.md |
源码结构与工程决策 |
| 📄 数据源清单 | README 数据表 | 15 个 feed 的授权与刷新频率 |
| 🎙️ OpenAI Realtime API | platform.openai.com/docs/guides... | 语音 Agent 依赖 |
本文为原创内容,转载请注明来源与作者。
CSDN 首发 | 版权所有 © 2026
📢 温馨提示:God's Eye View 为 MIT 协议开源项目,使用前请阅读仓库 LICENSE 文件。项目明确声明为探索性可视化工具,不得用于导航、应急、医疗或投资决策。Google Maps API 及部分数据源涉及付费或配额限制,部署前请确认计费规则。Node.js 版本被强制锁定在 24.14.x/26.x。功能与数据源信息更新较快,建议以 GitHub 仓库最新 README 为准。