首页 › weekly › 摆脱地图霸权的7个开源神器

本期主题:把“地理位置”从巨头手里拿回来——7个开源地图与位置生态宝藏

概述

连续几期我们避开了一个看似“已被 Google 垄定”的领域:地图与位置服务。但 2025 年 Google Timeline 改版导致大量用户位置历史丢失(据多家媒体报道),反而成了开源地理生态的引爆点——离线地图、自托管位置记录、自建路径规划、单文件瓦片分发,每一环都有成熟项目顶上。本期 7 个仓库横跨 C++ 引擎、Rails 全栈、Android 应用和文件格式标准,既有 Star 上万的老牌劲旅,也有去年才几百 Star、如今被视为“Google 时间线最佳平替”的小而美新作。地理数据是少数巨头撤离反而留下巨大空白的领域,商业二次开发空间极宽。


1. Organic Maps | Star 约 10k | 活跃维护中

organicmaps/organicmaps

一句话定位:完全离线、零广告零追踪的开源地图 App,MAPS.ME 的开源续命之作。

它解决的痛点:野外没信号、出境不想被追踪、受够了地图 App 里的广告和信息流——Organic Maps 把全部地图数据(基于 OpenStreetMap)打包进本地文件,搜索、导航、收藏全部离线完成。

核心拆解:项目 2021 年从闭源的 MAPS.ME 分叉开源,C++ 核心引擎 + Kotlin(Android)/ Swift(iOS)双端。架构上最有意思的是它的 MWM 地图分块格式——按区域下载、按需更新,徒步路线、等高线、滑雪道图层都能单独叠加。导航支持驾车/步行/骑行三种模式,且完全在本地计算路径。对开发者而言,它的 C++ 核心可以作为库嵌入,这是做离线导览产品的现成底座。

上手难度:⭐(装了就用)

适用人群:户外爱好者、经常出境的用户、隐私敏感人群。二次开发方向:景区/博物馆/越野赛事的白标离线导览 App——离线导览是付费意愿极清晰的场景,而 Organic Maps 提供了几乎全部技术底座。


2. Dawarich | Star 约 3k+(一年内从几百暴涨) | 活跃维护中

Freika/dawarich

一句话定位:自托管的 Google Timeline 替代品,你的位置历史从此只存在自己家里。

它解决的痛点:Google 2024 年宣布 Timeline 只存本地后,2025 年中大量用户报告历史记录被清空且无法找回(据多家媒体报道)。位置轨迹是十年级别的记忆数据,交给任何云厂商都有归零风险。

核心拆解:Ruby on Rails + React + Sidekiq 的经典全栈组合,Docker Compose 一键起服务。数据入口非常开放:支持 Google Takeout 的 records.json 导入(把你在 Google 积累的历年时间线整体搬回家)、OwnTracks、Overland、PhoneTrack、Home Assistant,还配了官方手机 App 做定位上报。前端是一个可回放任意日期的时间轴地图,自动统计你到过的国家、城市、总里程——半年前去过哪个小镇,搜一下就出来。

上手难度:⭐⭐⭐(需要一台 NAS/VPS 和基本的 Docker 操作)

适用人群:自托管玩家、有长期位置数据焦虑的人、家庭“共同记忆”记录者。商业方向:面向家庭的位置共享托管服务、小型车队/外勤团队的位置留痕 SaaS——目标用户和付费场景都已被 Google Timeline 教育成熟。


3. StreetComplete | Star 约 4k | 活跃维护中(按“任务季”持续迭代)

streetcomplete/StreetComplete

一句话定位:把“给世界地图打工”变成闯关游戏的 Android 应用。

它解决的痛点:OpenStreetMap 数据永远缺细节——这家店几点开门?这条路是不是柏油的?这个自行车道有没有?但传统编辑器(iD、JOSM)学习成本高,把 99% 想贡献的普通人挡在门外。

核心拆解:打开 App,地图上会浮现一个个可回答的“任务”图标(Quest):点开一个店铺图标,回答营业时间;点开一段路,选路面材质。你的每次回答自动转成结构化的 OSM 数据变更并提交。Kotlin 编写,任务系统是插件化设计——官方按季度发布“任务季”主题(比如某季专攻人行道无障碍信息),社区贡献新 Quest 类型的门槛很低。这是“让非技术人员批量生产高质量地理数据”的教科书级交互设计。

上手难度:⭐(散步时顺手玩)

适用人群:想为开源做贡献但没有编程背景的人、骑行/徒步深度用户。商业思路:市政设施数据采集——城市若有“摸清全市无障碍设施”这类需求,基于 Quest 机制做定向众包采集,成本远低于人工测绘。


4. Valhalla | Star 约 4k | 活跃维护中

valhalla/valhalla

一句话定位:开源路径规划引擎中的“动态成本”流派代表,自建版 Google Directions。

它解决的痛点:物流、外卖、出行类产品调用 Google Directions API 是按次付费的持续失血;而开源阵营里 OSRM 快但路径成本策略在预处理时就写死了,想按请求灵活调整(比如“这次绕开高速”)很别扭。

核心拆解:C++ 编写,源自 Mapzen,现由 Valhalla 组织维护。最大亮点是分层瓦片式路网:全球路网切成多级瓦片,请求时只加载相关区域,内存占用友好。更关键的是“动态 costing”——车辆、货车、自行车、行人等出行方式的成本函数在请求时才应用,可以按请求排除高速、避开台阶、按坡度优化骑行路线(它内置高程数据感知)。除最短路径外还提供 isochrones(等时圈:“从这里 30 分钟能到哪”)、matrix(多点对多点的距离矩阵,配送调度的基础件)。官方 Docker 镜像 + 切瓦片脚本,拿一份 OSM 区域数据就能起自己的路由 API。

上手难度:⭐⭐⭐⭐(要理解瓦片构建和 costing 参数)

适用人群:出行/物流/户外类产品的后端工程师。商业方向:为区域性客户(城际货运、景区接驳、共享单车)自托管路径规划,把按次计费的 API 成本变成一次性基础设施投入——客户规模越大,省得越狠。


5. Photon | Star 约 4k+ | 活跃维护中

komoot/photon

一句话定位:容错能力极强的开源地理编码器,自建版 Google Places 搜索框。

它解决的痛点:地图产品里“输入几个字 → 模糊匹配到地点”这个搜索框,看着简单,背后是地理编码这门硬学问。Nominatim 准确但笨重难伺候,Google Places 又贵又限流。

核心拆解:Java 编写,是户外社区 Komoot 为自家搜索框打造的方案,索引基于 Lucene 构建。它吃 OpenStreetMap 全球数据,提供正向(关键词→坐标)和反向(坐标→地址)两套 API,天然支持多语言地名、错别字容忍(打错字也能出结果)、按用户当前位置偏置排序。部署极其简单:官方提供预构建的全球索引文件,下载后 java -jar 一行命令起服务,也有轻量的区域索引可选。很多自托管地图方案(比如配合 Dawarich、Immich 类项目的地图组件)都用它做地点联想。

上手难度:⭐⭐(下载索引 + 一条启动命令)

适用人群:需要地点搜索能力的全栈开发者、私有化部署的信息系统。商业方向:给政企内网/离线环境做地址补全组件——这类客户不能调外网 API,又愿意为“开箱可用的搜索框”付费。


6. MapLibre GL JS | Star 约 6k+ | 非常活跃

maplibre/maplibre-gl-js

一句话定位:Mapbox GL JS 的开源分叉,如今事实上的开放矢量地图渲染标准。

它解决的痛点:2020 年底 Mapbox 修改 SDK 许可证并调整定价,大量成本敏感的用户被架上砧板。社区当机立断 fork 了最后的开源版本 v1.13,五年间把“怕 Mapbox 涨价”升级成了“根本不需要 Mapbox”。

核心拆解:WebGL 渲染的矢量瓦片地图库,完整兼容 Mapbox Style Spec,你现有的样式文件几乎无缝迁移。围绕它已长成一整个家族:MapLibre Native 覆盖 iOS/Android,React 生态有成熟封装,Leaflet/OpenLayers/QGIS 均有对接。它是“地图界摆脱单一大厂依赖”最成功的案例——政府、金融、交通行业的私有化地图项目大量采用,兼容旧 Mapbox 代码这一点让迁移成本极低。配上下一节的 PMTiles,前端渲染 + 数据托管可以做到全程零第三方依赖。

上手难度:⭐⭐⭐(需要前端开发基础)

适用人群:所有要做数据可视化和地图展示的前端/全栈开发者。商业方向:帮企业从 Mapbox 迁移省年费——这是个已经真实存在的咨询/外包市场,技术方案就是 MapLibre 家族全家桶。


7. PMTiles | Star 约 2-3k(千级成长中) | 活跃维护中

protomaps/PMTiles

一句话定位:把整个地图瓦片库塞进一个文件,用纯静态存储干掉瓦片服务器。

它解决的痛点:传统地图托管需要 MBTiles + 瓦片服务器(或无数小文件)+ CDN,运维重、成本高;全球级别的瓦片动辄几十 TB 的请求费用。

核心拆解:PMTiles 是一个云优化的单文件归档格式——所有瓦片按空间索引(Hilbert 曲线排序)打包进一个文件,前端通过 HTTP Range Request 按字节区间随机读取,不需要任何服务端逻辑。也就是说:一个 PMTiles 文件扔到 S3、Cloudflare R2(无出口流量费)甚至 GitHub Pages,配上 MapLibre 就是全球可用的地图服务。配套的 protomaps 主仓库提供每日全球底图构建和切图工具链,Leaflet、MapLibre、OpenLayers、QGIS 都有官方适配。据项目方介绍,这种架构能把地图托管成本压缩一到两个数量级。

上手难度:⭐⭐(会 CLI 就行)

适用人群:被瓦片服务器折磨的 GIS 工程师、想给静态博客加地图的人。商业方向:帮地理信息公司“上云降本”——把客户的私有瓦片数据转成 PMTiles 架构,交付方案干净、省钱效果可量化,是最容易讲清楚价值主张的一单。


8. OpenTracks | Star 约 2k | 活跃维护中

OpenTracksApp/OpenTracks

一句话定位:一个网络权限都不需要的 Android 运动轨迹记录器。

它解决的痛点:Strava、Keep 等运动 App 把你跑步的每一条轨迹、心率、作息上传变现,且免费版功能逐年缩水。对轨迹数据敏感的跑者和骑行者需要“记录这一功能”本身,而非一个社交平台。

核心拆解:纯离线设计——App 声明的权限里根本没有互联网访问,记录的 GPS 轨迹、配速、海拔全部只存本地;通过蓝牙连接心率带等传感器做训练监控,支持语音播报配速;配套的 Dashboard 应用提供本地统计分析。代码结构干净,是 F-Droid 上的常青项目。小团队、低依赖、目标极窄,属于典型的“单一痛点做到极致”的小而美样本,也非常适合作为定制化运动 App 的起点。

上手难度:⭐

适用人群:隐私敏感的运动人群、离线场景(山区、边境、船上)记录者。商业思路:为垂直运动场景(越野赛、滑雪场、马术)定制轨迹记录与安全监控 App,OpenTracks 可作核心底座。


本期横向对比

仓库 类型 Star(约) 上手难度 一句话场景
Organic Maps 离线地图 App 10k+ ⭐ 无网也能导航的全能地图
Dawarich 自托管位置历史 3k+ ⭐⭐⭐ Google Timeline 平替
StreetComplete OSM 众包编辑 4k ⭐ 散步顺手改进世界地图
Valhalla 路径规划引擎 4k ⭐⭐⭐⭐ 自建物流/出行路由 API
Photon 地理编码器 4k+ ⭐⭐ 容错地点搜索框
MapLibre GL JS 前端地图渲染库 6k+ ⭐⭐⭐ 零依赖摆脱 Mapbox
PMTiles 瓦片文件格式 2-3k ⭐⭐ 单文件 + 静态托管地图
OpenTracks 运动轨迹记录 2k ⭐ 完全离线的运动记录

可视化定位

quadrantChart
    title 本期开源地理生态定位图
    x-axis "低上手门槛" --> "高上手门槛"
    y-axis "个人日用工具" --> "商业/基建价值"
    quadrant-1 "深耕变现区"
    quadrant-2 "亲民基建区"
    quadrant-3 "尝鲜实验区"
    quadrant-4 "大众日用区"
    "Organic Maps": [0.12, 0.40]
    "Dawarich": [0.42, 0.52]
    "StreetComplete": [0.10, 0.30]
    "Valhalla": [0.75, 0.88]
    "Photon": [0.28, 0.68]
    "MapLibre GL JS": [0.55, 0.78]
    "PMTiles": [0.35, 0.82]
    "OpenTracks": [0.08, 0.22]

本期之最

参考来源

  1. Organic Maps - GitHub — 离线地图应用官方仓库
  2. Dawarich - GitHub — 自托管位置历史项目仓库及文档
  3. Valhalla - GitHub — 开源路由引擎官方仓库
  4. Photon - GitHub — Komoot 开源地理编码器
  5. MapLibre GL JS - GitHub / maplibre.org — 开源矢量地图渲染库及官方文档
  6. PMTiles - GitHub / protomaps.com — 单文件瓦片格式规范与工具链
  7. StreetComplete - GitHub — OSM 众包任务式编辑器
  8. OpenTracks - GitHub — 离线运动轨迹记录器

注:文中 Star 数为写作时约数,请以各仓库页面实时数据为准;Google Timeline 数据丢失事件为公开报道,具体影响范围以官方说明为准。

[!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 等场景全覆盖。

51学通信知识星球海报-扫码加入