上帝视角探索地球每个角落NAS Docker部署 Gods-Eye-View 3D地球
这不陆陆续续两个假期就要来了,本来想给大家找找和假期相关的docker项目,碰到一个挺有意思的项目,它把地图、公开的航班信息、城市交通数据以及其他公开数据图层聚集在一个3D的地球上,有点像从上帝的视角探索每个地区。

一、体验上帝视角
在浏览器中输入NAS的ip+端口号可以访问到这个项目,点击【location】,然后再上方输入地址,进行查找。

它不支持很具体的地址搜索,放大自己熟悉的地方,然后进行探索。

找到左侧【DATA LAYERS】,点击“+”。 左侧的功能将on开关点开就行。

点开Live Flights 使其状态为ON可,可以看到很多飞机,随机点一个航班信息,可以查看公开航班的信息,比如飞行的位置、高度等。

部分地区还可以查看公开的城市交通摄像头的数据,了解道路的交通情况。

二、NAS部署
首先在作者项目页,点击【Download ZIP】,下载相关的内容。

将文件解压后,再上传到NAS中。

services:
gods-eye-view:
image: docker.1ms.run/library/node:24.14.0-bookworm
container_name: gods-eye-view
restart: unless-stopped
working_dir: /app
ports:
- "4173:4173"
volumes:
- /share/Container/gods-eye-view:/app
- gods-eye-node-modules:/app/node_modules
environment:
TZ: "Asia/Shanghai"
command:
- bash
- -lc
- |
npm config set registry https://registry.npmmirror.com
if [ ! -d "/app/node_modules/vite" ]; then
echo "首次启动,正在安装依赖..."
npm ci
fi
echo "正在构建 God's Eye View..."
npm run build
echo "启动 God's Eye View..."
exec npm run preview -- --host 0.0.0.0 --port 4173
volumes:
gods-eye-node-modules:

在部署的过程中可能会遇到一些问题,这个3D的球是蓝色的,

找到下面这个文件,内如需要修改,可以直接复制下面的内容。
/share/Container/gods-eye-view/src/maps/imagery.js
修改后的内容如下。
import * as Cesium from 'cesium';
// Attribution and service rights are documented in DATA_SOURCES.md.
export const ESRI_ATTRIBUTION_HTML =
export function createOsmImagery() {
return new Cesium.OpenStreetMapImageryProvider({
url: 'https://tile.openstreetmap.org/',
credit: '© OpenStreetMap contributors',
});
}
export function createEsriImagery() {
return new Cesium.UrlTemplateImageryProvider({
url: 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',
credit:
'Powered by Esri - Source: Esri, Maxar, Earthstar Geographics, and the GIS User Community',
tilingScheme: new Cesium.WebMercatorTilingScheme(),
});
}
export function createIonImagery(style, accessToken) {
accessToken = String(accessToken || '').trim();
if (!accessToken) throw new Error('Ion imagery requires an explicit token');
return Cesium.IonImageryProvider.fromAssetId(style, { accessToken });
}
点击保存。

然后返回ContainerStation,将容器停止。

然后再重新启动。

部署完成后,重新进入这个项目,发现这里已经切换到ESRI SATELLITE,如果没有手动点击下。

这个项目整体还是很有意思的,还有很多的玩法值得探索,如果你对它感兴趣可以尝试下。
