这一期我们把镜头对准一个被低估的赛道:地理空间(Geospatial)。每个带定位按钮的 App 背后都是一张地图,而 Google Maps API 的账单、国内地图厂商的商用配额、以及「用户轨迹数据到底存在谁家」的追问,让越来越多的团队开始自建地图栈。本期沿着「原始数据 → 瓦片生产 → 存储分发 → 前端渲染 → 空间分析 → 路径规划 → 零代码发布」这条完整流水线挖了 8 个仓库,其中 3 个 Star 不到 2000,但个个都处于活跃维护状态,属于「装上就能省真金白银」的类型。
说明:文中 Star 数为截至 2026 年 9 月的量级估算,仅供参考,请以仓库页面实时数据为准。
仓库:maplibre/maplibre-gl-js | 约 8k+ Star | 活跃维护中
2020 年底,Mapbox 宣布 mapbox-gl-js v2 转为专有许可,社区直接从 BSD 授权的 v1.13 分叉出 MapLibre。四年多过去,它已经从「Mapbox 平替」成长为 WebGL 地图渲染的事实标准:2025 年初发布的 v5 版本带来了 3D 地球投影、地形渲染等原版都未必有的能力。
核心亮点有三:一是样式规范兼容 Mapbox v1 生态,存量项目迁移成本极低;二是全家桶齐全,Android、iOS、React Native 原生绑定同样开源,一套样式五端复用;三是社区治理干净,基金会化运作,不用担心哪天又换许可证。
它解决的就是那个经典痛点:你的地图引擎随时可能被商业公司「断供」。
仓库:organicmaps/organicmaps | GitHub 约 6k Star(主力发行在应用商店) | 活跃维护中
Organic Maps 脱胎于被开源的 MAPS.ME 代码,是一款 Android/iOS 完全离线的地图与导航应用:装好后下载离线地图包,搜索、导航、徒步路线(含等高线和高程剖面)全部离线可用,无广告、无追踪、不联网也能跑。对徒步、自驾穿越、出境漫游人群,它是「没信号也不慌」的底气。
工程上也值得拆解:C++ 内核 + 跨平台 UI,地图渲染、地址搜索、路径规划全部自研,不依赖任何在线服务,数据来自 OpenStreetMap 社区。
另一个看点是它的治理风波:据社区公开信与多方报道,2025 年年中创始团队与长期维护者爆发分歧,多数核心贡献者出走另立 CoMaps 分叉。一个明星开源项目如何在治理上翻车,这个案例值得所有想「商业化开源」的团队研读。
仓库:systemed/tilemaker | 约 4k Star | 活跃维护中
传统矢量瓦片生产链路又长又重:osm2pgsql 入库 → PostGIS 存 → 渲染服务切片,没有一台像样的服务器玩不转。tilemaker 用 C++ 写成了单一二进制:读入 OSM 的 .pbf 文件,直接输出 MBTiles 或 PMTiles 瓦片包,中间不需要任何数据库和服务器,树莓派都能跑。
配置即图层:默认内置 OpenMapTiles 兼容方案,照着 config.json 改就行;想把河流标成紫色、只保留某类 POI、给自家门店加一个专属图层,都只是改配置文件的事。作者本人就是资深 OSM 社区成员,项目长期稳定迭代。
它是「把地图数据据为己有」的第一步:数据在你手里,切片在你手里,整个链路零外部依赖。
仓库:protomaps/go-pmtiles | 约 1k Star | 活跃维护中
这是本期最被低估的小仓库之一。PMTiles 是 Protomaps 团队设计的云原生单文件瓦片格式(规格见 protomaps/PMTiles):把整座瓦片金字塔按空间有序压缩进一个文件,浏览器通过 HTTP Range 请求按需读取其中字节,完全不需要瓦片服务器。go-pmtiles 是官方 CLI,提供 convert、extract、serve 三个子命令——转换格式、裁剪区域、本地起服务,各一行命令。
它真正的杀伤力在成本模型:瓦片包扔进 S3、Cloudflare R2 乃至 GitHub Pages 这样的静态托管,就是一个生产级地图服务,没有运维、没有并发瓶颈,流量费用按字节算,边际成本趋近于零。QGIS、GDAL、MapLibre 生态均已支持该格式。
全世界的 Web 地图都在为「瓦片服务器」这件事付冤枉钱,PMTiles 直接把这一层抹掉了。
flowchart LR
A["OSM 原始数据 pbf"] --> B["tilemaker 切片"]
B --> C["PMTiles 单文件"]
C --> D["静态托管 S3 或 R2"]
D --> E["浏览器直连 pmtiles 协议"]
E --> F["MapLibre GL JS 渲染"]
仓库:maplibre/martin | 约 3k Star | 活跃维护中
PMTiles 解决「静态分发」,martin 解决「动态服务」。这个用 Rust 写的矢量瓦片服务器已并入 MapLibre 组织:直接连 PostGIS 数据库,或托管 MBTiles/PMTiles 单文件,自动生成 TileJSON 元数据,开箱即与 MapLibre、Leaflet 等前端配合。Docker 一行命令跑起来,Rust 异步栈加持下吞吐量轻松打满带宽,资源占用却很小。
它的定位很聪明:不做重型 GIS 中间件,只把「数据库里的空间数据 → 浏览器里的矢量瓦片」这段路修到极致。你的业务数据在 PostGIS 里实时变化,前端地图实时跟着变——这是静态瓦片包做不到的事。
对做位置类 SaaS(外卖调度、车辆监控、资产盘点)的团队,martin 加 PostGIS 基本就是标准答案的骨架。
仓库:duckdb/duckdb-spatial | 约 1.5k Star | 活跃维护中
DuckDB 官方空间扩展,本期第二个小而美。在 DuckDB 里执行 INSTALL spatial; LOAD spatial;,你就拥有了一个单机 GIS 分析引擎:内置 GEOS、PROJ、GDAL,几十个 ST_ 空间函数开箱即用,Shapefile、GeoPackage、GeoJSON、Parquet 直接当表读,空间连接自带 R-Tree 加速,百万级点面判断秒级出结果。
传统 GIS 分析要么开重型桌面软件点点点,要么上 PostGIS 起 服务。而 DuckDB 的模型是「分析完即走」:数据是本地的、过程是 SQL 的、结果是 CSV/GeoJSON 随处可交的。配合 WKT 一列存几何,把空间数据混进普通数据管道里毫无违和感。
它正在改变一批数据分析师的工作方式:地理不再是 GIS 专业软件的领地,而是 SQL 查询里的又一张表。
仓库:valhalla/valhalla | 约 4k Star | 活跃维护中
路径规划是地图栈里技术密度最高的一层,valhalla 是这一层最成熟的开源答案。它起源于 Mapzen,Mapzen 关停后由社区持续接手维护至今。C++ 编写,能力覆盖:多模式路径规划(驾车、步行、骑行、摩托车)、等时圈分析、轨迹纠偏(map matching)、考虑高程的骑行路线、turn-by-turn 导航播报数据。数据来自 OSM,用 valhalla_build_tiles 构建路网图后,valhalla_service 即可对外提供 HTTP API。
它的商业地位很实在:不少商业地图 API 服务商以它为底座对外卖路由接口,物流、出行类公司则用它在内网做私有化部署——车队轨迹不出内网,算路能力自己掌控。
如果说 MapLibre 是地图的「脸」,valhalla 就是地图的「腿」。脸可以慢慢换,腿断了的业务一天都跑不了。
仓库:umap-project/umap | 约 1.6k Star | 活跃维护中
本期第三个 Star 不到 2000 的宝贝,出自 OSM 法国社区,已经稳定运行了十多年。uMap 解决的是最朴素的需求:让完全不会编程的人,几分钟内做出一张可分享、可嵌入的交互地图。打开网页、选底图、导入 CSV/GeoJSON/KML 或直接在地图上画点画线,调调颜色和图标,保存后拿到一个链接,可以嵌入任何网页。多图层管理、权限控制、协作编辑一应俱全。
社区公益组织用它标救援物资点,媒体用它做事件地图,学校用它做校园导览——这些需求传统上都要「找人做个地图」,现在是自己十分钟搞定。官方实例免费可用,数据敏感的组织可以用 Docker 自托管(Django 项目,部署不复杂)。
在「人人都要会点地图」这件事上,uMap 是门槛最低的那扇门,也是把非技术同事拉进开源世界的绝佳教具。
| 仓库 | 类型 | Star 量级 | 上手难度 | 一句话场景 |
|---|---|---|---|---|
| maplibre-gl-js | 前端渲染 | 约 8k+ | ⭐⭐⭐ | 网页/App 内嵌地图引擎 |
| organicmaps | 移动应用 | 约 6k | ⭐ | 完全离线的手机导航 |
| tilemaker | 瓦片生产 | 约 4k | ⭐⭐ | OSM 数据一键切片 |
| go-pmtiles | 格式与 CLI | 约 1k | ⭐⭐ | 单文件瓦片、静态托管 |
| martin | 瓦片服务 | 约 3k | ⭐⭐ | PostGIS 实时出图 |
| duckdb-spatial | 空间分析 | 约 1.5k | ⭐⭐ | 用 SQL 做地理分析 |
| valhalla | 路径规划 | 约 4k | ⭐⭐⭐⭐ | 私有化算路引擎 |
| umap | 零代码建图 | 约 1.6k | ⭐ | 十分钟发布交互地图 |
mindmap
root((开源地图栈))
渲染层
MapLibre GL JS
Organic Maps
数据与瓦片
tilemaker
go-pmtiles
服务层
martin
分析层
DuckDB Spatial
规划层
Valhalla
零代码入口
uMap
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
