Protomaps
开源地图系统研究 —— PMTiles 单文件瓦片格式、工具链、上海地区底图自建项目与 MapLibre 集成。
- 官方文档: https://docs.protomaps.com/
- GitHub (protomaps/go-pmtiles): https://github.com/protomaps/go-pmtiles
- GitHub (basemaps/planetiler): https://github.com/protomaps/basemaps
- 底图下载与预览: https://maps.protomaps.com/
- 在线查看器: https://pmtiles.io/
Sub Topics
| 阅读顺序 | 主题 | 描述 |
|---|---|---|
| 1 | PMTiles 格式与工具链 | 格式原理(HTTP Range Requests、文件结构、去重)与工具链(pmtiles CLI / Tippecanoe / Planetiler) |
| 2 | 上海地区底图项目 | 动手实践 —— 从全球底图远程裁剪上海、本地验证、部署 |
| 3 | 自制 PMTiles 地图 | 最简单例子:GeoJSON → Tippecanoe → .pmtiles → MapLibre 渲染 |
| 4 | MapLibre 集成 | pmtiles 协议注册、@protomaps/basemaps 完整样式、中文标签 |
推荐阅读顺序
- 理解 PMTiles 格式与工具链 → PMTiles 格式与工具链:格式原理(单文件 + Range 读取)、pmtiles CLI / Tippecanoe / Planetiler 安装
- 动手实践上海底图 → 上海地区底图项目:找到构建 → extract 裁剪 → 预览(pmtiles.io)→ 验证 → 本地查看(test-map.html)→ 部署(R2 / S3)
- 自制 PMTiles 地图 → 自制 PMTiles 地图:自己的 GeoJSON → Tippecanoe → .pmtiles → MapLibre 渲染(进阶)
MapLibre 深入集成(React 组件、样式切换、性能优化)另见 MapLibre 集成。
相关笔记
- Collection Maps:地图相关资源收藏
Backlinks (2)
flowchart LR
n0["AI"]
n1["Database"]
n2["Dev Tools"]
n3["Emoji"]
n4["Frontend"]
n5["Game Dev"]
n6["Collection"]
n7["Languages"]
n8["Maps"]
n9["Media"]
n10["Monitor"]
n11["Study Materials"]
n12["Plans"]
n13["Storage"]
n14["Cloud"]
n15["对象存储基本用法(Bucket / Object / 常用操作)"]
n16["对象存储数据迁移(R2 → MinIO / 跨厂商搬迁)"]
n17["Object Storage"]
n18["挂载 Bucket 为本地文件系统(FUSE Mount)"]
n19["对象存储签名 URL(Signed URL)原理与实战"]
n20["对象存储供应商对比(S3 / R2 / OSS / Supabase / MinIO)"]
n21["Prototypes"]
n22["Research"]
n23["Better Auth 源码阅读指南"]
n24["DuckDB 环境与基本使用"]
n25["DuckDB 实战研究"]
n26["DuckDB 模拟数据"]
n27["PostgreSQL 数据用 DuckDB 加速查询"]
n28["HK 角色阅读"]
n29["HK 台词阅读"]
n30["Hollow Knight 英语主题"]
n31["英语学习 Dashboard"]
n32["English Scraps Archive"]
n33["English Scraps 使用指南"]
n34["Jellyfin 源码阅读指南"]
n35["Lux 资料整理"]
n36["Nest Commander 学习资料"]
n37["NestJS 源码阅读指南"]
n38["Protomaps 自建底图研究"]
n39["自制 PMTiles 地图(最简单例子)"]
n40["MapLibre 集成 Protomaps"]
n41["PMTiles 格式与工具链"]
n42["上海地区底图项目"]
n43["Redash 源码阅读指南"]
n44["Rust 学习计划"]
n45["shadcn/ui 进阶使用"]
n46["shadcn/ui 组件添加与基本使用"]
n47["shadcn/ui 实用研究(从环境到基本使用)"]
n48["shadcn/ui 环境与初始化"]
n49["TRIP 项目核心原理与代码阅读指南"]
n1 --> n25
n1 --> n27
n4 --> n47
n6 --> n0
n6 --> n1
n6 --> n2
n6 --> n3
n6 --> n4
n6 --> n5
n6 --> n7
n6 --> n8
n6 --> n9
n6 --> n10
n6 --> n11
n6 --> n12
n6 --> n13
n6 --> n22
n14 --> n17
n15 --> n16
n15 --> n19
n15 --> n20
n15 --> n21
n16 --> n15
n16 --> n18
n16 --> n19
n16 --> n20
n17 --> n15
n17 --> n16
n17 --> n18
n17 --> n19
n17 --> n20
n18 --> n15
n18 --> n19
n18 --> n20
n19 --> n21
n20 --> n15
n20 --> n16
n20 --> n19
n20 --> n21
n21 --> n15
n21 --> n18
n21 --> n19
n21 --> n20
n21 --> n38
n22 --> n23
n22 --> n25
n22 --> n31
n22 --> n34
n22 --> n35
n22 --> n36
n22 --> n37
n22 --> n38
n22 --> n43
n22 --> n44
n22 --> n47
n22 --> n49
n24 --> n26
n25 --> n1
n25 --> n22
n25 --> n24
n25 --> n26
n25 --> n27
n26 --> n24
n26 --> n27
n27 --> n25
n27 --> n26
n30 --> n28
n30 --> n29
n30 --> n33
n31 --> n30
n31 --> n32
n31 --> n33
n33 --> n31
n33 --> n32
n38 --> n8
n38 --> n39
n38 --> n40
n38 --> n41
n38 --> n42
n39 --> n41
n40 --> n21
n40 --> n42
n41 --> n39
n41 --> n42
n42 --> n40
n42 --> n41
n45 --> n46
n46 --> n45
n46 --> n48
n47 --> n4
n47 --> n22
n47 --> n45
n47 --> n46
n47 --> n48
n48 --> n46
click n0 "../../../collection/ai/" "AI"
click n1 "../../../collection/database/" "Database"
click n2 "../../../collection/dev-tools/" "Dev Tools"
click n3 "../../../collection/emoji/" "Emoji"
click n4 "../../../collection/frontend/" "Frontend"
click n5 "../../../collection/game-dev/" "Game Dev"
click n6 "../../../collection/" "Collection"
click n7 "../../../collection/languages/" "Languages"
click n8 "../../../collection/maps/" "Maps"
click n9 "../../../collection/media/" "Media"
click n10 "../../../collection/monitor/" "Monitor"
click n11 "../../../collection/reading/" "Study Materials"
click n12 "../../../collection/scraps/plans/" "Plans"
click n13 "../../../collection/storage/" "Storage"
click n14 "../../../knowledge/infrastructure/cloud/" "Cloud"
click n15 "../../../knowledge/infrastructure/cloud/object-storage/basic-usage/" "对象存储基本用法(Bucket / Object / 常用操作)"
click n16 "../../../knowledge/infrastructure/cloud/object-storage/data-migration/" "对象存储数据迁移(R2 → MinIO / 跨厂商搬迁)"
click n17 "../../../knowledge/infrastructure/cloud/object-storage/" "Object Storage"
click n18 "../../../knowledge/infrastructure/cloud/object-storage/mount-bucket/" "挂载 Bucket 为本地文件系统(FUSE Mount)"
click n19 "../../../knowledge/infrastructure/cloud/object-storage/signed-url/" "对象存储签名 URL(Signed URL)原理与实战"
click n20 "../../../knowledge/infrastructure/cloud/object-storage/vendors-comparison/" "对象存储供应商对比(S3 / R2 / OSS / Supabase / MinIO)"
click n21 "../../../prototypes/" "Prototypes"
click n22 "../../" "Research"
click n23 "../better-auth/" "Better Auth 源码阅读指南"
click n24 "../duckdb/basic-usage/" "DuckDB 环境与基本使用"
click n25 "../duckdb/" "DuckDB 实战研究"
click n26 "../duckdb/mock-data/" "DuckDB 模拟数据"
click n27 "../duckdb/postgresql-acceleration/" "PostgreSQL 数据用 DuckDB 加速查询"
click n28 "../english/hollow-knight/characters/" "HK 角色阅读"
click n29 "../english/hollow-knight/dialogues/" "HK 台词阅读"
click n30 "../english/hollow-knight/" "Hollow Knight 英语主题"
click n31 "../english/" "英语学习 Dashboard"
click n32 "../english/scraps/archive/" "English Scraps Archive"
click n33 "../english/scraps/" "English Scraps 使用指南"
click n34 "../jellyfin/" "Jellyfin 源码阅读指南"
click n35 "../lux/" "Lux 资料整理"
click n36 "../nest-commander/" "Nest Commander 学习资料"
click n37 "../nestjs/" "NestJS 源码阅读指南"
click n38 "./" "Protomaps 自建底图研究"
click n39 "make-own-map/" "自制 PMTiles 地图(最简单例子)"
click n40 "maplibre/" "MapLibre 集成 Protomaps"
click n41 "pmtiles/" "PMTiles 格式与工具链"
click n42 "shanghai-map/" "上海地区底图项目"
click n43 "../redash/" "Redash 源码阅读指南"
click n44 "../rust/" "Rust 学习计划"
click n45 "../shadcn-ui/advanced/" "shadcn/ui 进阶使用"
click n46 "../shadcn-ui/components/" "shadcn/ui 组件添加与基本使用"
click n47 "../shadcn-ui/" "shadcn/ui 实用研究(从环境到基本使用)"
click n48 "../shadcn-ui/setup/" "shadcn/ui 环境与初始化"
click n49 "../trip/" "TRIP 项目核心原理与代码阅读指南"