一个基于 Tauri + Rust 的高性能地理空间数据下载与导出桌面工具。支持 2D 地图瓦片、3D Tiles 裁剪下载、Esri Wayback 历史影像,导出 GeoTIFF。
欢迎沟通交流 本人微信 gpb230314
产品更名: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 数据下载(道路、建筑、水系等)
- 行政区划边界下载
- 本地矢量文件加载预览
- 多源支持:Cesium Ion 资产、Google 3D Tiles(全球倾斜摄影)、自定义 URL
- 空间裁剪:在 3D 地图上框选区域,只下载选区内的瓦片
- 递归下载:自动递归解析子 tileset,完整下载多层级 LOD
- 离线预览:下载后 URI 自动本地化,支持离线 3D 浏览
cd src-tauri
cargo tauri devcd 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 以获得更好的服务。
访问 Google 等国外图源时,请在「高级选项」中启用代理并配置正确的代理地址。
- 下载的地图数据版权归原图商所有,请遵守相关使用条款
- 大范围高缩放级别下载可能需要较长时间,请耐心等待
- 建议根据网络状况调整并发数(网络不稳定时降低并发数)
MIT License
如果这个项目对你有帮助,欢迎请作者喝杯咖啡 ☕
微信 支付宝

