Skip to content

gaopengbin/geo-downloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GeoDownloader

一个基于 Tauri + Rust 的高性能地理空间数据下载与导出桌面工具。支持 2D 地图瓦片、3D Tiles 裁剪下载、Esri Wayback 历史影像,导出 GeoTIFF。

欢迎沟通交流 本人微信 gpb230314

Rust Tauri License GitHub Release Downloads Latest Downloads

🎉 v3.0.0 — 大版本更新

产品更名:TIF地图下载工具 → GeoDownloader,覆盖 2D 瓦片 + 3D Tiles 全场景。

📦 新增功能

  • 3D Tiles 下载:支持 Cesium Ion / Google 3D Tiles / 自定义 URL,空间过滤裁剪
  • 3D Tiles 本地预览:下载完即可离线浏览三维模型
  • CesiumJS 3D 视图:在线预览 3D Tiles 数据集,框选下载区域

🔧 改进

  • 修复 Google 3D Tiles session 参数传播问题
  • 子 tileset URI 自动重写为本地相对路径
  • 自动更新支持新安装包名

✨ 功能特性

🗳️ 地图下载

  • 多图源支持:OSM、ArcGIS 卫星/地形/街道、天地图、Carto、Google Maps、高德地图/卫星、OpenTopoMap 等
  • 自定义图源:支持添加任意 {z}/{x}/{y} 格式的瓦片图源
  • 多任务并行下载:支持同时创建多个下载任务,实时进度显示
  • 多格式导出:GeoTIFF(带地理坐标 + LZW 压缩)、PNG、JPEG
  • 按边界裁剪:支持按多边形边界裁剪,透明背景
  • 可调并发:支持 10-100 并发下载,快速高效
  • 下载历史:自动记录每次下载,支持快速打开文件夹

📍 区域选择

  • 地名搜索:输入地名快速定位
  • 行政区划:中国省/市/区县三级联动选择
  • 自定义边界
    • 上传 GeoJSON (.json/.geojson)
    • 上传 Shapefile (.shp + .shx + .dbf)
    • 地图上手动绘制矩形或多边形

📦 矢量数据(高级功能)

  • OSM 数据下载(道路、建筑、水系等)
  • 行政区划边界下载
  • 本地矢量文件加载预览

🏙️ 3D Tiles

  • 多源支持:Cesium Ion 资产、Google 3D Tiles(全球倾斜摄影)、自定义 URL
  • 空间裁剪:在 3D 地图上框选区域,只下载选区内的瓦片
  • 递归下载:自动递归解析子 tileset,完整下载多层级 LOD
  • 离线预览:下载后 URI 自动本地化,支持离线 3D 浏览

🚀 快速开始

环境要求

开发运行

cd src-tauri
cargo tauri dev

构建发布

cd src-tauri
cargo tauri build

构建完成后,安装包位于 src-tauri/target/release/bundle/ 目录。

🏗️ 项目结构

geo-downloader/
├── src-tauri/          # Rust 后端 (Tauri)
│   ├── src/
│   │   ├── lib.rs        # 应用入口
│   │   ├── commands.rs   # Tauri 命令
│   │   ├── config.rs     # 配置和内置图源
│   │   ├── tile.rs       # 瓦片坐标计算
│   │   ├── downloader.rs # 异步并发下载器
│   │   ├── merger.rs     # 瓦片拼接与裁剪
│   │   ├── exporter.rs   # 图像导出 (GeoTIFF/PNG/JPEG)
│   │   ├── admin.rs      # 行政区划数据
│   │   ├── task.rs       # 多任务管理
│   │   ├── history.rs    # 下载历史记录
│   │   ├── settings.rs   # 用户设置持久化
│   │   └── tiles3d/      # 3D Tiles 下载模块
│   │       ├── mod.rs
│   │       ├── tileset.rs  # tileset.json 解析
│   │       ├── filter.rs   # 空间过滤 (OBB/ECEF)
│   │       └── fetcher.rs  # 递归下载 + 管线化
│   └── Cargo.toml
├── static/             # 前端静态文件
│   ├── index.html
│   ├── css/style.css
│   ├── lib/            # 本地 Leaflet 库
│   └── js/
│       ├── api.js      # Tauri API 适配层
│       └── app.js      # 前端主逻辑
└── docs/               # 文档

⚙️ 配置说明

天地图 Token

内置了默认 Token,建议在「高级选项」中配置您自己的 Token 以获得更好的服务。

代理设置

访问 Google 等国外图源时,请在「高级选项」中启用代理并配置正确的代理地址。

📝 注意事项

  • 下载的地图数据版权归原图商所有,请遵守相关使用条款
  • 大范围高缩放级别下载可能需要较长时间,请耐心等待
  • 建议根据网络状况调整并发数(网络不稳定时降低并发数)

📄 许可证

MIT License

☕ 赞助

如果这个项目对你有帮助,欢迎请作者喝杯咖啡 ☕

微信赞赏      支付宝赞赏

微信                                支付宝

Star History

Star History Chart