God‘s Eye View 怎么搭建?在云服务器上部署一个实时 3D 地球可视化平台

如果你对实时地图、航班、船舶、卫星、地震、公共摄像头以及全球地理数据可视化 感兴趣,可以看看 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 运维可视化平台。

相关推荐
爱和冰阔落1 小时前
【Linux】条件变量为什么必须配合互斥锁:从 pthread_cond_wait 到阻塞队列
linux·运维·c++·缓存·中间件·安卓
星间都市山脉1 小时前
Android16 SystemService.onBootPhase 调用时机
android·java·linux·windows·ubuntu
深入云栈1 小时前
Netty 4.2.x 源码深度解析 (十三):Epoll 传输 —— Linux 高性能 IO 的 Netty 实现
java·后端
初願致夕霞1 小时前
Linux 进程间通信(IPC)机制详解:管道、FIFO 与 System V 共享内存
linux·服务器·c++
ynchyong1 小时前
Linux nohup 后台服务合并标准错误输出到一个文件
java·linux·运维
Lyra_Infra1 小时前
从一段错误 JSON 说起:Policy、Role 与 IAM
后端·json·aigc
Charlie_Byte1 小时前
在用户目录安装多版本 JDK,并用环境变量切换
后端
xx~t1 小时前
嵌入式——51单片机3
linux·c语言·嵌入式硬件·51单片机
Tairitsu_H1 小时前
[C++] C++11 Lambda与包装器深度解析
开发语言·c++·c++11·lambda·包装器