拓冰建站拓冰建站
首页 / 资讯中心 / 正文

God‘s Eye View实时3D地球:14个数据源服务端代理架构的完整设计模式指南

Gods Eye View实时3D地球14个数据源服务端代理架构的完整设计模式指南【免费下载链接】gods-eye-viewA spy satellite simulator in your browser, except the data is real. Live open source spatial intelligence on a photorealistic 3D globe.项目地址: https://gitcode.com/GitHub_Trending/go/gods-eye-viewGods Eye View 是一款开源的实时 3D 地球可视化项目它像一部间谍卫星模拟器但喂给它的全是真实公开数据——活体航班、船只、卫星、地震、公共摄像头和广播电台。这些卫星画面并非魔法背后是server/providers/目录下 14 个数据源代理proxy组成的服务端架构浏览器只请求本地服务密钥与配额全部留在服务器端。本文带你从新手视角看懂这套服务端代理架构的设计模式。 什么是服务端代理14 个数据源总览所谓服务端代理server-side proxy就是浏览器不直接访问 OpenSky、NASA、TomTom 等第三方 API而是先请求本地 Vite 开发服务器由它代为转发、缓存、限流。这样带来三个好处密钥不出服务器OpenAI、AISStream、Google 等私密凭证只有服务端可见⚡缓存与省配额内存 磁盘两级缓存重复请求不再打上游️防御上游风险字节上限、SSRF 防护、错误脱敏14 个顶层代理文件与它们背后的数据源如下表代理模块数据源地球上的角色cctv.js城市摄像头 APIAustin、London、Tallinn 等公共摄像头投射进 3D 城市firms.jsNASA FIRMS 全球活跃火点gbfs.jsGBFS 共享单车标准 单车站点实时状态military-installations.jsOpenStreetMap 社区数据️ 军事设施标注openai.jsOpenAI Realtime API️ 语音 AI 与 AI HUD 摘要overpass.jsOverpass (OSM)道路、边界等矢量数据places.jsGoogle Places地点搜索与路线radio.jsRadio Browser 全球电台调谐器regional.js区域新闻 / 天气 API驾驶舱简报条space.jsCelesTrak Launch Library 2️ 卫星目录与发射回放terrain.jsRe:Earth地形点高度查询traffic.jsTomTom 实时车流速度live.jsOpenSky / adsb.lol / AIS✈️ 实时航班与船只聚合local.js—装配器按序注册全部插件复杂的数据源还会拆进子目录如 aircraft/、cctv/、vessels/每个子模块只负责一小段职责查询、缓存、传输分离。⚙️ 设计模式一Vite 插件工厂每个代理都导出一个工厂函数返回一个 Vite 插件对象。以 terrain.js 为例它返回{ name, configureServer, configurePreviewServer }——configureServer把一段中间件挂到固定的/api/*路由上// 所有代理的统一外形示意 export function terrainHeightsProxy() { const installMiddleware (server) { server.middlewares.use(/api/terrain/heights, async (req, res) { /* … */ }); }; return { name: terrain-heights-proxy, configureServer: installMiddleware, /* … */ }; }真正的总装配线在 local.jslocalProviderPlugins()按固定顺序返回 20 个插件实例OpenSky → CelesTrak → TomTom → … → Google Places根目录 vite.config.js 只做一行重导出。这意味着新增一个数据源 写一个工厂函数 在列表里加一行完全解耦——这正是 README 所说每一层都是可替换的模块的工程落地。 设计模式二共享基建common/所有代理不重复造轮子公共能力集中在 common/字节上限读请求/读响应common/request.js 对入站 body 强制上限common/http.js 对上游响应边流边计数超限立即掐断防止恶意上游把代理内存打爆请求合并single-flightcoalesceProxyRequest 让同一时刻的相同请求共享一次上游调用固定窗口限流common/rate-limit.js 按真实 socket 地址限流明确不信任X-Forwarded-For头客户端可控伪造即可绕过——这是一个很值得新手学习的防御细节 设计模式三两级缓存 陈旧兜底数据不会变与会变化采用不同策略慢变数据如 terrain.js 的地形高度按坐标点做键内存 Map 磁盘 JSON 文件TTL 长达 30 天重启后自动从磁盘恢复快变数据如 overpass.js 的 OSM 查询内存缓存按规范化后的查询串做键并发相同查询合并为一次上游请求响应头附带X-Overpass-Cache: HIT/MISS/STALE方便调试时看清命中路径陈旧兜底serve-stale当所有上游镜像都失败时Overpass 代理宁可返回任何年龄的最后成功结果也不让道路图层闪空——旧的路好过没有路️ 设计模式四安全加固这套代理被 README 称为hardened server-side proxy核心防线服务端凭证浏览器永远看不到OPENAI_API_KEY等私密值客户端只拿到短时效会话令牌逻辑见 openai/realtime.jsSSRF 防护如电台代理用isPublicRadioAddress校验上游地址防止被诱导去请求内网每 IP 可选限流makeOptInRateLimiter 默认不启用通过环境变量开启每分钟 N 次/每 IP全局兜底值为单 IP 上限的 20 倍错误脱敏上游异常统一返回简洁的 JSON 错误如terrain heights proxy error不泄露内部细节 眼见为实代理驱动的真实图层CCTV 代理把城市摄像头姿态朝向/俯仰估计后投射进 3D 空间——你还能拖拽相机上的 gizmo 手动校准。下面是 Austin 路口的活体摄像头画面TomTom 代理则把真实车流速度喂给仿真层城市级拥堵颜色一路下钻直到钻进同一路口的摄像头视角 新手如何扩展一个新数据源照着既有模式四步即可在 server/providers/ 下新建mymodule.js实现返回{ name, configureServer }的工厂函数用 common/http.js 的带上限读取函数处理请求与响应在 local.js 的插件列表里注册一行浏览器端写一个同目录模式的 data 模块参考 src/data/去消费/api/mymodule 关键文件路径速查路径说明server/providers/local.js14 个代理的统一装配点server/providers/overpass.js限流 缓存 请求合并的完整范例server/providers/terrain.js两级缓存设计注释最详尽的模块server/providers/common/rate-limit.js固定窗口限流器实现vite.config.js代理插件的入口DATA_SOURCES.md全部数据源与授权说明Gods Eye View 的服务端代理架构用小工厂 共享基建 分层缓存 安全加固四个模式把 14 个互不相同的第三方数据源缝成了一个稳定、可审计、可离线启动的实时 3D 地球。想要亲手拆解从server/providers/terrain.js的注释读起是成本最低的入口。【免费下载链接】gods-eye-viewA spy satellite simulator in your browser, except the data is real. Live open source spatial intelligence on a photorealistic 3D globe.项目地址: https://gitcode.com/GitHub_Trending/go/gods-eye-view创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门