两个实用地图开源工具推荐:3D 可视化大屏 & 卫星底图下载器

近期发现了两个基于现代前端技术栈的地图相关开源项目,分别解决了3D 地图可视化展示卫星瓦片底图下载两个不同场景的需求,在此推荐。


一、sc-datav:Three.js 3D 地图可视化大屏

GitHubknight-L/sc-datav (590 Stars, 178 Forks, Apache-2.0)

在线预览knight-l.github.io/sc-datav

项目简介

一个基于 Three.js + React 19 + ECharts 的 3D 地图可视化大屏项目,包含 3D 地图渲染、轮廓飞线、侧边扫光、多图表联动等丰富功能。以四川省地理轮廓为示例,精确呈现 3D 地图效果。

功能特性

  • 3D 地图可视化:基于 Three.js 的 3D 地图渲染,轮廓飞线动画效果,侧边扫光视觉效果
  • 省级地图展示:四川省地理轮廓精确呈现
  • 多图表联动:柱状图、折线图等多种数据可视化形式
  • 响应式设计:支持多种屏幕尺寸自适应
  • 实时调试面板:使用 Leva 实现参数实时调整

技术栈

类别技术
核心框架React 19 + TypeScript
构建工具Vite (Rolldown 版本)
3D 可视化Three.js + @react-three/fiber + @react-three/drei
数据可视化ECharts
地理数据处理D3-geo
动画库GSAP
样式库Styled-components
调试工具Leva
自适应布局autofit.js

项目结构

src/
├── assets/             # 静态资源文件
│   ├── sc.json         # 四川省地理数据
│   └── sc_outline.json # 四川省轮廓数据
├── components/         # 通用组件
│   ├── chart.tsx       # 图表组件
│   └── seamVirtualScroll.tsx # 虚拟滚动组件
├── hooks/              # 自定义Hooks
├── pages/SCDataV/      # 数据大屏页面
│   ├── index.tsx       # 页面入口
│   ├── scMap.tsx       # 地图组件
│   ├── flyLine.tsx     # 飞线动画组件
│   ├── chart1.tsx      # 图表1
│   ├── chart2.tsx      # 图表2
│   ├── chart3.tsx      # 图表3
│   └── content.tsx     # 内容布局组件
└── App.tsx             # 应用根组件

快速启动

pnpm install
pnpm dev       # 启动开发服务器
pnpm build     # 构建生产版本

二、sat-hunter:卫星瓦片底图下载器

GitHubknight-L/sat-hunter (90 Stars, 31 Forks, Apache-2.0)

在线预览knight-l.github.io/sat-hunter

项目简介

基于 Vue 3 和 Leaflet 的在线卫星瓦片底图下载工具。支持多源底图(高德、Google、ESRI 等),可按行政区划搜索或矩形框选区域,自定义缩放级别,自动下载拼接并导出为图片。

主要功能

  • 多源底图支持:高德卫星地图、Google 卫星地图、ESRI 影像(Imagery / Firefly / Light & Dark Gray)、地形图(Hill Shade)
  • 灵活的选区模式
    • 区域轮廓下载:按行政区划(省、市、区/县)搜索并自动选中轮廓范围
    • 矩形框选下载:画图工具自由绘制矩形框进行下载
  • 自定义缩放级别:支持 6-18 级缩放级别调整,满足不同精度需求
  • 实时预览与估算:实时显示瓦片数量估算,大数据量警告(>1000 张提示,>1500 张限制下载)
  • 自动拼接下载:后端自动获取所有切片并在前端 Canvas 中拼接,一键导出为图片
  • 暗色模式:支持 Dark Mode,根据系统设置自动切换或手动切换

技术栈

类别技术
前端框架Vue 3 + TypeScript
构建工具Vite
样式库Tailwind CSS
地图引擎Leaflet
绘图插件Leaflet-Geoman

快速启动

pnpm install
pnpm dev       # 启动开发服务器(默认 http://localhost:5173)
pnpm build     # 构建生产版本

使用指南

  1. 选择底图:在左侧设置面板底部,点击选择底图风格(如"高德卫星"或"Google 卫星")
  2. 确定范围
    • 区域搜索:在"按区域轮廓下载"输入框中输入城市名称(如"北京市"),选择对应行政区
    • 手动框选:点击地图左侧工具栏的矩形图标,在地图上拖拽画出矩形框
  3. 调整精度:拖动"缩放级别"滑块,级别越高地图越清晰,瓦片数量也越多。建议关注"预计瓦片"数量,控制在 1000 张以内
  4. 开始下载:点击"开始下载",系统自动下载并拼接,完成后弹出图片保存对话框

两个项目的互补关系

这两个项目可以很好地配合使用:

  1. sat-hunter 负责下载指定区域的卫星底图瓦片并拼接为高精度图片
  2. sc-datav 负责将地理数据以 3D 可视化的方式呈现,支持飞线、扫光等酷炫效果

典型工作流:先用 sat-hunter 获取目标区域的卫星底图作为纹理贴图素材,再将其集成到 sc-datav 的 3D 地图大屏中,实现更加真实震撼的展示效果。两个项目均使用 TypeScript + Vite 技术栈,开发体验一致,且均以 Apache-2.0 开源。