如果你对实时地图、航班、船舶、卫星、地震、公共摄像头以及全球地理数据可视化 感兴趣,可以看看 bilawalsidhu/gods-eye-view。
这个项目并不是传统意义上的地图网站,而是一个基于浏览器的实时 3D 地球可视化项目:将飞机、船舶、卫星、地震、交通、公共摄像头等公开数据放到一个可交互的 3D 地球中,同时支持语音控制和 AI Agent。项目目前采用 MIT License,不过第三方数据和素材仍然分别受各自许可约束。
如果想长期运行或者方便远程开发,放到一台 Linux 云服务器上会比较合适。例如使用莱卡云服务器作为远程运行环境,可以把代码、Node.js、数据处理服务以及自己的扩展统一放在服务器上。
一、God's Eye View 到底是什么?
简单理解:

God's Eye View
│
┌───────────────┼───────────────┐
↓ ↓ ↓
飞机 船舶 卫星
↓ ↓ ↓
地震 摄像头 交通
└───────────────┼───────────────┘
↓
3D 地球可视化
↓
浏览器交互探索
项目使用 CesiumJS 等技术,把不同来源的公开数据融合到一个地球界面。
目前 README 描述的主要能力包括:
- 实时/定期更新的飞机数据
- 船舶数据
- 卫星
- 地震
- 公共摄像头
- 交通
- 无线电
- 火箭发射
- 3D 地球
- AI 实时语音控制
二、它比较特别的地方
很多地图项目是:
地图
+
标记点
God's Eye View 更偏向:
地球
│
┌─────────┼─────────┐
↓ ↓ ↓
飞机 船舶 卫星
↓ ↓ ↓
地震 摄像头 交通
└─────────┼─────────┘
↓
空间数据融合
↓
3D Globe UI
因此它更像一个:
"实时空间数据探索工作台"。
而不是普通的地图组件。
三、特别适合用来做什么?
例如:
全球航班观察
世界地图
↓
飞机位置
↓
航向
↓
高度
↓
速度
船舶观察
全球海域
↓
船舶
↓
AIS 数据
↓
实时位置
卫星
卫星轨道
↓
当前地面位置
↓
轨迹
地震
地震数据
↓
全球地震点
↓
震级
↓
时间
公共摄像头
公开 Camera
↓
地图位置
↓
查看对应画面
这些都是项目当前的数据层方向。
四、为什么适合放在云服务器?
项目本质上是:
Node.js
+
Vite
+
Vanilla JavaScript
+
CesiumJS
官方当前 package.json 要求:
Node.js >=24.14.0 <25
或者
Node.js 26.x
并提供:
npm ci
npm run doctor
npm run dev
等命令。
因此非常适合部署在:
Linux VPS
│
Node.js
│
God's Eye View
│
Vite
│
Browser
例如把它放在莱卡云服务器上,就可以作为一个长期在线的 Web 可视化项目运行。
五、服务器配置其实不用特别高
这里有一个容易误解的地方:
真正进行 3D 渲染的是用户浏览器。
也就是说:
服务器
↓
提供 HTML / JS / 数据
↓
浏览器
↓
GPU
↓
3D Globe
所以服务器并不需要:
高端 GPU
主要负责:
Node.js
API
数据代理
静态文件
即可。
如果只是测试:
2 vCPU
2~4GB RAM
40GB SSD
就可以开始。
如果还需要:
实时数据服务
数据库
Nginx
日志
自己的 API
建议:
4 vCPU
8GB RAM
80GB SSD
会更加宽裕。
六、官方当前安装方式
首先准备 Node.js 24.14.x。
例如使用 nvm:
nvm install 24.14.0
nvm use 24.14.0
然后:
git clone https://github.com/bilawalsidhu/gods-eye-view.git
cd gods-eye-view
安装:
npm ci
然后运行项目自带检查:
npm run doctor
最后:
npm run dev
官方当前 Quick Start 就是这个基本流程。
七、一个很重要的变化:现在不一定需要 API Key
项目目前已经支持 keyless boot。
也就是说,刚安装以后:
God's Eye View
↓
无需 API Key
↓
可以启动
官方说明默认可以使用:
- Esri World Imagery
- keyless terrain
- OSM fallback
同时飞机、军事交通、卫星、地震、公共摄像头、无线电和发射等部分功能可以在没有额外 Key 的情况下运行。
这使得第一次部署简单很多。
八、什么时候才需要 API Key?
如果希望获得更高级的 3D 地图效果,就可以增加:
Google Maps API Key
或者:
Cesium ion Token
官方目前说明:
Google Maps
→ 直接的 Photorealistic 3D Tiles + 地点搜索
Cesium ion
→ ion-hosted Google 3D / Bing / World Terrain 等
具体取决于你选择的地图提供商和账户。
九、Google Maps Key 不要随便暴露
项目架构里已经考虑到了这一点。
官方贡献文档说明:
私密 Key
↓
Server-side
↓
Vite Proxy
浏览器只应该看到需要暴露且已经限制过的 Google Maps Key,以及短期 token。
所以不要把:
GOOGLE_SECRET_KEY
DATA_API_KEY
直接写进:
src/
public/
里面。
十、服务器部署结构建议
如果你准备长期运行:
Internet
│
HTTPS
↓
Nginx
│
↓
Node / Vite
│
God's Eye View
│
┌──────────────────┼──────────────────┐
↓ ↓ ↓
Aircraft Ships Satellites
↓ ↓ ↓
API API API
其中:
Nginx
负责:
HTTPS
反向代理
静态资源
Node/Vite:
God's Eye View
负责:
前端
数据代理
开发服务
十一、开发环境和生产环境要区分
开发时:
npm run dev
非常方便。
但正式部署:
npm run build
然后:
dist/
交给 Nginx 或其他 Web Server。
例如:
npm run build
官方项目也把:
npm run build
npm test
npm run test:track
作为提交前的验证步骤。
十二、正式环境推荐
可以:
Git
↓
npm ci
↓
npm run build
↓
dist/
↓
Nginx
↓
HTTPS
而不是:
Internet
↓
npm run dev
长期生产环境直接暴露开发服务器并不是最佳方式。
十三、如果需要实时数据,Node 服务仍然有意义
这个项目并不是完全静态网页。
官方架构里存在:
server/providers/live.js
server/providers/places.js
说明部分数据需要经过服务器端 Provider 处理。
所以比较合理的是:
浏览器
│
↓
Nginx
│
├── 静态文件
│
└── API / Provider
│
↓
数据源
十四、可以自己增加数据源
这也是这个项目非常适合二次开发的地方。
例如:
现有数据源
│
├── 飞机
├── 船舶
├── 卫星
└── 地震
你可以继续增加:
├── 天气
├── 台风
├── 火灾
├── 机场
├── 港口
└── 自己的 GeoJSON
但必须注意第三方数据的许可。
官方 DATA_SOURCES.md 明确指出:
MIT License 只覆盖源代码,并不自动覆盖第三方数据和视觉素材。 每个数据源依然遵循自己的许可和使用条款。
十五、GeoJSON 非常适合二次开发
例如:
data/
└── china.json
或者:
data/
└── infrastructure.geojson
然后:
GeoJSON
↓
Cesium
↓
3D Globe
可以加入:
城市
机场
机房
道路
海底光缆
服务器节点
数据中心
等自己的可视化数据。
十六、可以做自己的服务器节点地图
例如你维护多个服务器节点:
新加坡
日本
香港
美国
欧洲
可以生成:
Global Globe
● Japan
\
\
● Singapore
/
/
● Hong Kong
● US
节点点击以后:
节点名称
IP
在线状态
CPU
内存
带宽
延迟
这样就可以把 God's Eye View 改造成自己的:
全球服务器监控地图。
这其实是非常适合云服务器业务二次开发的方向。
十七、还可以接 Nezha / Prometheus
例如:
Nezha
│
├── Node 1
├── Node 2
├── Node 3
└── Node 4
通过 API:
Nezha API
↓
自己的 Provider
↓
GeoJSON
↓
Cesium
最后:
3D Globe
↓
服务器节点
↓
实时状态
点击:
Singapore Node
CPU 28%
RAM 41%
Online
就能把一个"地球可视化项目"变成自己的服务器监控地图。
十八、还可以做全球网络质量地图
例如:
服务器 A
↓
Ping
↓
全球节点
记录:
Singapore → Japan
Singapore → Hong Kong
Singapore → US
Singapore → Europe
得到:
延迟
丢包
TCP
HTTP
再放到地球:
Singapore
│
├──── 55ms ───→ Japan
│
├──── 32ms ───→ Hong Kong
│
└─── 180ms ───→ US
这会比普通二维表格更加直观。
十九、项目还支持语音控制
官方当前 README 明确提到:
hands-free voice control powered by a realtime AI agent。
所以可以实现类似:
"显示亚洲地区飞机"
"切换到卫星图层"
"显示附近的地震"
"找到新加坡附近的机场"
然后:
语音
↓
AI Agent
↓
地图控制
↓
Cesium
这是项目非常有特色的一部分。
二十、可以进一步做成 AI 地图助手
例如:
用户:
"帮我看看日本附近有哪些飞机?"
↓
AI Agent
↓
God's Eye View
↓
查询 Aircraft Layer
↓
地图自动定位
进一步:
"把卫星图层打开"
"放大欧洲"
"显示最近的地震"
"切换到夜间视图"
这种交互会比传统 GIS 软件更加自然。
二十一、但是不要把它当成专业导航系统
官方对此有非常明确的提醒。
项目中的数据可能:
延迟
不完整
经过建模
经过推断
存在错误
因此不能用于:
飞行导航
海事导航
紧急救援
医疗决策
投资决策
安全关键任务
所以它更适合:
可视化
研究
学习
演示
探索
二次开发
而不是生产级导航系统。
二十二、还有一个隐私边界值得注意
项目作者专门规定:
不做指定人物搜索
不做人脸识别
不做个人追踪
也就是说:
飞机
船
卫星
基础设施
城市
可以作为空间对象。
但:
某个人在哪里
某个人去了哪里
通过人脸找人
不属于项目设计目标。
这也是官方项目规则中明确划出的边界。
二十三、部署时不要把第三方数据当成 MIT
这一点非常重要。
项目:
源代码
↓
MIT
并不意味着:
所有地图
所有图片
所有数据
↓
MIT
官方 DATA_SOURCES.md 特别说明,第三方数据各自拥有独立许可。部分数据甚至属于非 MIT 兼容的许可。
所以如果你准备:
商用
二次发布
截图宣传
重新分发
一定要单独检查数据源的许可。
二十四、README 里的宣传 GIF 也不能随便拿出来商用
这个项目还有一个很容易忽略的地方。
官方 docs/media/README.md 明确说明,项目 README 中部分 GIF 是作者自己制作并授权随项目文档分发的:
这些 GIF
≠
MIT License
而且其中包含 Google Photorealistic 3D Tiles 和第三方数据图层。
因此不能因为项目源码是 MIT,就认为这些宣传素材也可以任意拿去使用。
二十五、如果只想自己部署,最简单
服务器:
Ubuntu / Debian
+
Node.js 24.14
执行:
git clone https://github.com/bilawalsidhu/gods-eye-view.git
cd gods-eye-view
npm ci
npm run doctor
npm run dev
本地访问:
http://127.0.0.1:4173
如果远程服务器:
你的电脑
│
SSH Tunnel
↓
莱卡云服务器
│
127.0.0.1:4173
这样最安全。
二十六、如果要公网访问
建议:
Internet
│
443
↓
Nginx
│
HTTPS
│
↓
Node / App
│
↓
God's Eye View
而不是:
Internet
↓
4173
↓
Vite dev server
正式环境建议:
npm run build
再用 Nginx 提供构建结果。
二十七、如果需要后台 API
可以:
api.example.com
│
443
↓
Nginx
↓
Node Provider
↓
数据源
而:
www.example.com
↓
God's Eye View
这样:
前端
+
API
可以分开。
二十八、如果要做自己的版本
推荐不要直接大改:
src/ui.js
而是按照官方当前架构:
src/
├── app/
├── data/
├── ui.js
└── ...
增加:
src/data/my-provider.js
然后:
Provider
↓
数据
↓
Layer
↓
Cesium
官方贡献文档也明确要求将 UI 与 layer logic 尽量分离,并建议数据源变化时同步更新 DATA_SOURCES.md。
二十九、如果想做成自己的"全球服务器地图"
这个方向我比较推荐。
可以:
God's Eye View
↓
删除不需要的数据层
↓
增加服务器节点
↓
增加网络质量
↓
增加在线状态
↓
增加城市 / 机房
最终:
全球 3D 地球
│
┌───────────────┼───────────────┐
↓ ↓ ↓
服务器 网络 数据中心
│ │ │
Online Latency Status
│ │ │
└───────────────┼───────────────┘
↓
AI 助手
这会比单纯"把官方项目部署起来"更有二次开发价值。
三十、服务器建议
如果只是:
God's Eye View + Node.js
建议:
2C
4G
40GB SSD
已经够测试。
如果:
God's Eye View
+
多个 Provider
+
数据库
+
自己的 API
+
监控
建议:
4C
8G
80GB SSD
如果只是浏览器 3D 渲染:
不需要 GPU。
因为 Cesium 的主要 WebGL 渲染工作发生在访问者的浏览器端。
三十一、一个比较完整的部署方案
我比较推荐:
用户浏览器
│
HTTPS :443
↓
Nginx
/ \
/ \
↓ ↓
静态资源 API
│ │
↓ ↓
God's Eye View Node.js
│
┌─────────────┼─────────────┐
↓ ↓ ↓
Aircraft Ships Satellites
│ │ │
└─────────────┼─────────────┘
↓
Data Sources
服务器:
莱卡云
├── Node.js 24
├── God's Eye View
├── Nginx
├── API
└── 日志/监控
浏览器:
Cesium/WebGL
↓
3D Earth
三十二、最后总结
bilawalsidhu/gods-eye-view 当前更准确的定位是:
一个基于公开数据的实时空间信息可视化与探索项目。
它目前可以把:
飞机
船舶
卫星
地震
交通
公共摄像头
无线电
发射任务
等信息放到一个可交互的 3D 地球中,并支持 AI/语音交互。
它的技术栈并不重:
Node.js 24.14+
Vite
Vanilla JS
CesiumJS
官方当前已经支持无 Key 启动,因此第一次部署门槛比较低。
如果使用莱卡云服务器,我建议不要一开始就上高配置机器:
4C / 8G / 80G
作为长期开发环境已经比较充裕;单纯测试甚至可以从:
2C / 4G / 40G
开始。
真正值得玩的不是简单地把它"放到服务器上",而是利用它的开放数据层和 Cesium 3D 地球,把它进一步改成自己的:
全球服务器节点地图、网络质量地图、数据中心地图或 AI 运维可视化平台。