news 2026/10/4 5:52:17

面向地理教学的开源数字地球 —— GuEarth 项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
面向地理教学的开源数字地球 —— GuEarth 项目

项目地址:GitHub - HikaruQwQ/GuEarth
关键词:ElectronVue3CesiumJS数字地球地理教学AI Agent工具调用

文章目录

    • 一、前言
    • 二、GuEarth 是什么
    • 三、技术栈
    • 四、整体架构
      • EOQ Agent 的工具调用闭环
    • 五、教学模块(对标人教版选择性必修一)
      • M1 地球运动
      • M2 大气
      • M3 地貌
      • M4 水体与海洋
      • M5 整体性与差异性(规划中)
    • 六、快速开始
    • 八、写在最后

一、前言

Google Earth 很强大,但它在国内访问不稳定、无法定制教学内容、也没有面向课堂的工具链等缺点。于是社区里出现了一个想法:做一个本地运行的、可离线、可定制、内置 AI 助手的"数字地球",专门服务于中学与高校地理教学。

这就是GuEarth—— 一个基于 Electron + Vue 3 + CesiumJS 的开源桌面端三维数字地球。目前 v0.1.5 已实现核心平台与四大教学模块(地球运动 / 大气 / 地貌 / 水体海洋),并内置了一个能"看图说话"、会开图层、会飞镜头的 AI 地理助手EOQ。

二、GuEarth 是什么

一句话概括:本地版 Google Earth + 地理教学工具箱 + AI 地理助手的合体。

核心能力一览:

  • 三维球体与地形:CesiumJS 渲染,支持多地图数据源(OSM / Mapbox / ArcGIS / 高德等)、可插拔地形服务、地形光照与夸张系数调节、2D/3D 场景切换;
  • 教学标注工具:绘制点、线、面、箭头、文字框,测距测面,标注就地编辑(颜色 / 字号 / 线宽),自动持久化保存;
  • 专题教学图层:晨昏线、气压带风带、柯本气候区、板块边界 + USGS 实时地震火山、ENSO 海温异常、世界洋流、台风历史路径……全部可点击查询成因;
  • EOQ AI 助手:流式对话 + 工具调用(Tool Calling),能联网搜索、检索内置地理知识库、查地名并fly_to带你飞、按剧本自动录制成教学视频;
  • 本地优先与安全:所有密钥只存在主进程(safeStorage加密),渲染进程零 Node 权限,瓦片本地缓存。

三、技术栈

层选型说明
桌面壳Electron + electron-vitecontextIsolation开、nodeIntegration关,typed preload IPC(window.guEarth)
渲染层Vue 3 + Pinia + Ant Design Vue组件与设计 token 全部遵循 DESIGN.md
图表ECharts(vue-echarts)按需引入echarts/core+ SVGRenderer
三维地图CesiumJS静态资源自研插件托管,CESIUM_BASE_URL=./cesium/
AI主进程 OpenAI 兼容流式客户端供应商无关(DeepSeek / Qwen / OpenAI…)
存储userData下 JSON 文件凭据走safeStorageKeyVault
打包electron-builderWindows NSIS

四、整体架构

┌─────────────────────────────────────────────┐ │ Renderer (Vue 3) │ │ 球体视图 / 图层注册表 / 绘制工具 / EOQ 对话 UI │ │ 不接触任何 Node API 与密钥 │ └──────────────────┬──────────────────────────┘ │ contextBridge (window.guEarth) ┌──────────────────▼──────────────────────────┐ │ Preload (typed IPC) │ └──────────────────┬──────────────────────────┘ │ ipcMain.handle / event ┌──────────────────▼──────────────────────────┐ │ Main (主进程) │ │ 窗口管理 / KeyVault / AI 代理(流式) │ │ 瓦片缓存 / USGS 数据集拉取 / 地点搜索 │ └─────────────────────────────────────────────┘

三条设计原则:

  1. 渲染进程永远不碰 Node API 和密钥,所有特权操作走 IPC;
  2. 地图数据源统一实现LayerProvider接口,影像源与地形源均可插拔,为未来离线地形包留好口子;
  3. AI 工具在渲染侧注册:新增"AI 能操作球体"的能力 = 新增一个工具定义,主进程不需要知道球体 API 细节。

EOQ Agent 的工具调用闭环

这是本项目最有意思的设计:

用户提问(渲染进程) → IPC 到主进程发起 LLM 流式调用 → 模型返回工具调用(flyTo / queryTerrain / setLayer / explainLandform / recordVideo / webSearch / retrieveKnowledge …) → 主进程把工具调用转发给渲染进程的球体 API 执行 → 执行结果回填对话上下文 → 模型继续生成,答案流式返回前端

比如老师问"带我看看喀斯特地貌",EOQ 会:retrieve_knowledge查知识库 →search_place查典型地点坐标(如桂林、石林)→ 逐个fly_to飞过去 →query_terrain查海拔辅助讲解 → 输出成因讲解。

五、教学模块(对标人教版选择性必修一)

这是 GuEarth 区别于通用 GIS 软件的核心价值。专题图层代码集中在src/renderer/src/thematic/,统一在useThematicLayers.ts注册。

M1 地球运动

  • 昼夜与太阳直射点时间轴(日期 / 时刻可调,二分二至预设)
  • 昼长 & 正午太阳高度随纬度变化图表
  • 太阳视运动天穹面板、黄赤交角可调探索器(直射点范围 + 五带划分)
  • 自转速度与恒星日 / 太阳日演示、科里奥利力演示图层
  • 时区对比工具,以及配套的set_sim_time/query_solarAI 工具

M2 大气

  • 气压带风带图层(1 月 / 7 月位置对比)、全球柯本气候分区
  • 专题要素点击 + AI 讲解、锋面气旋锚定叠加层
  • 热力环流动画面板(海陆风 / 山谷风 / 城市风)
  • 大气受热过程面板(削弱 + 保温,昼夜 / 云量状态可切换)
  • 大气垂直分层面板(高度-温度廓线)
  • 台风图层(结构锚定叠加 + 历史真实路径)

M3 地貌

  • 板块边界 + USGS 地震 / 火山数据(主进程拉取 + 缓存)
  • 褶皱断层剖面面板 + 真实地点飞行漫游
  • 河流地貌面板(上中下游 + 基于sampleTerrainMostDetailed的真实地形剖面)
  • 典型地貌导览(喀斯特 / 雅丹 / 冰川 / 海岸 / 黄土自动飞行)
  • 外力作用链、地球内部圈层剖面,以及explain_landformAI 工具

M4 水体与海洋

  • ENSO 相位图层(El Niño / La Niña 海温异常 + 沃克环流 + Niño3.4 关键区)
  • 水循环动画面板(与相机联动)
  • 海水温度 / 盐度纬度剖面、潮汐与海浪面板
  • 河流补给与径流、洋流与风带关联入口

M5 整体性与差异性(规划中)

山地垂直自然带谱、引导式剖面飞行(fly_transect)、find_peaks等。

六、快速开始

可前往下载安装包
https://github.com/HikaruQwQ/GuEarth/releases/download/v0.1.5/guearth-0.1.5-x64-setup.exe

gitclone https://github.com/HikaruQwQ/GuEarth.gitcdGuEarthnpminstall# 国内网络需要手动装 Electron 二进制ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"\nodenode_modules/electron/install.jsnpmrun dev# 开发调试npmrun build# 生产构建npmrun build:win# 打 Windows 安装包

首次启动会有使用引导,指引配置地点搜索密钥(高德 / 百度)和 AI 模型供应商,也可以跳过后从底部工具栏重新打开。

八、写在最后

GuEarth 的目标很明确:让地理老师打开一个本地应用,就能拖动晨昏线、点开一条板块边界讲地震成因、或者让 AI 带着全班"飞"过桂林的喀斯特峰林。
项目完全开源,欢迎 Star、提 Issue、提 PR,也欢迎地理老师提出真实课堂需求——功能优先级由教学场景驱动。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 5:52:04

插件加载失败?一文读懂plugins机制与did not activate排查

一打开软件就弹出一行红字:failed to load plugins ... 2 entries did not activate,很多人第一反应就是卸载重装。我最初也这么干过,后来才发现,这行字背后藏着的是一整套插件加载机制。今天咱们就从 plugins 这个看似普通的词展…

作者头像 李华
网站建设 2026/10/4 5:51:03

AWS MFA丢失恢复指南:IAM与Root账号全流程实操

上个月,运维群里突然炸了:同事的手机在水里泡了一夜,Google Authenticator 里的 AWS 根账号 MFA 也跟着没了。那一整天,我们都在折腾怎么重新拿回控制台权限。类似的场景我遇到不止一次——有人换手机忘了迁移验证器,有…

作者头像 李华
网站建设 2026/10/4 5:50:49

WorkBuddy 实战:用 Skill、MCP 和 Prompt 高效生成行业简报

1. 从一条征集帖说起:WorkBuddy 到底在解决什么问题第一次看到这个征集标题的时候,我脑子里冒出来的第一个念头不是"又有活动了",而是"终于有人把 WorkBuddy 的真实用法拿出来聊了"。因为过去大半年,我身边不…

作者头像 李华
网站建设 2026/10/4 5:50:20

反光服与安全帽检测数据集:YOLOv5训练与边缘部署实战

简介:这份资源面向计算机视觉初学者与工地安全智能监控方向的开发者,提供一套围绕YOLOv5构建的安全装备佩戴检测方案,覆盖反光服、安全帽及施工人员穿戴等典型场景,可用于训练与验证目标检测模型。压缩包共47个文件,约…

作者头像 李华
网站建设 2026/10/4 5:50:15

从零开始AI工程:环境搭建、模型部署与避坑指南

1. 为什么AI工程不是“跑通模型就完事”1.1 算法工程师和AI工程师的分工差异很多人刚开始接触AI工程时,都会把注意力放在模型效果上:用哪个预训练模型,怎么调参,精度能到多少。这当然重要,但真正让你在真实业务中站稳脚…

作者头像 李华
网站建设 2026/10/4 5:50:13

子域名基础03_DNS解析流程_详细版

子域名挖掘前置基础 03:DNS 解析流程(详细版)本篇定位:上一篇讲了 DNS 解析的简单版——只说"做了什么"。本篇是详细版,把每一步的输入、输出、参与者、缓存行为都展开,配 mermaid 流程图。读完这…

作者头像 李华