在开发内网应用搭建私有化GIS系统时, “离线地图” 往往是一个绕不开的痛点。

  • 公网地图API在内网访问不通?
  • 想要高清卫星图,却找不到好用的下载工具?
  • 下载下来的瓦片文件成千上万,难以管理和分发?
    在这里插入图片描述

今天,就给大家推荐一款功能完整的开源离线地图瓦片下载和管理系统!它不仅支持多种地图源,还集成了 MinIO 云存储,绝对是你的地图数据管家。


🗺️ 离线地图瓦片下载器

Offline Map Tile Downloader

这是一个基于现代化技术栈构建的工具,旨在解决地图瓦片的下载、存储、预览和分发问题。

🌟 核心功能亮点

1. 🌍 全球图源,一网打尽

工具内置了多种主流地图源支持,满足不同场景需求:

  • Google Maps(卫星图/标准图)
  • 天地图(国家地理信息公共服务平台)
  • ArcGIS World Imagery(全球高清影像)
  • CartoDB
  • 支持自定义 URL 模板,扩展性拉满!
    在这里插入图片描述

2. 🎯 智能区域选择,拒绝繁琐

告别手动计算经纬度的痛苦,我们提供两种超直观的选择方式:

  • 🖱️ 手动框选:在地图上直接画个框,想下哪里框哪里。
  • 🖱️ 坐标输入 保留了硬核的坐标输入模式。
    在这里插入图片描述

3. ☁️ MinIO 集成,企业级存储

这是本项目的杀手锏
支持配置 MinIO 对象存储。下载的瓦片可以直接上传到云端,无需在本地囤积海量小文件,极大方便了团队协作和分布式系统的调用。
在这里插入图片描述

4. 📂 可视化管理与预览

下载不仅仅是把文件存下来。

  • 实时日志:通过 WebSocket 实时看到下载进度,不焦虑。
  • 离线预览:内置 Leaflet 引擎,下载完成后直接预览效果。
  • 打包带走:支持将下载记录批量打包,或者一键删除历史记录。
    在这里插入图片描述

🏗️ 硬核技术栈

对于开发者来说,这个项目也是学习全栈开发的绝佳案例:

🎨 前端 (my-tiler-ui)

  • Vue 3 + TypeScript + Vite
  • Element Plus UI 组件库
  • AMap (高德地图) + Leaflet

⚙️ 后端 (node-tiler-api)

  • Node.js + Express
  • SQLite (轻量级数据库存储记录)
  • MinIO SDK (云存储支持)
  • Socket.IO (实时全双工通信)

🚀 3分钟快速上手

Step 1: 环境准备

确保你的电脑安装了 Node.js (>= 20.19.0) 和 npm

Step 2: 启动后端

cd node-tiler-api
npm install
node server.ts
# 服务运行在 localhost:8000

Step 3: 启动前端

cd my-tiler-ui
npm install
npm run dev
# 界面运行在 localhost:5173

🎥 演示视频

离线地图下载器


🔧 使用小贴士

  1. MinIO 配置:如果你有私有云存储需求,记得在配置面板填入 Endpoint、AccessKey 和 SecretKey。
  2. API 密钥:使用天地图等服务时,建议配置自己的 Key 以获得更稳定的服务。
  3. 缩放级别:建议根据实际需求设置 Min/Max Zoom,级别越大文件指数级增加,请按需下载。

🤝 关于开源与贡献

地址:
https://github.com/ShaneMike-cn/Map-Downloader.git

本项目采用 Apache License 2.0 许可证,完全开源。

我们非常欢迎大家参与贡献:

  • 🐛 提交 Issue 反馈 Bug
  • 💡 提交 Pull Request 增加新功能
  • 去 GitHub 点个 Star 支持一下!
喜欢本文?点赞、在看、转发三连支持一下!❤️
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐