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["Plans"]
n12["Cloud"]
n13["对象存储基本用法(Bucket / Object / 常用操作)"]
n14["对象存储数据迁移(R2 → MinIO / 跨厂商搬迁)"]
n15["Object Storage"]
n16["挂载 Bucket 为本地文件系统(FUSE Mount)"]
n17["对象存储签名 URL(Signed URL)原理与实战"]
n18["对象存储供应商对比(S3 / R2 / OSS / Supabase / MinIO)"]
n19["Infrastructure"]
n20["Prototypes"]
n21["Research"]
n22["Better Auth 源码阅读指南"]
n23["DuckDB 环境与基本使用"]
n24["DuckDB 实战研究"]
n25["DuckDB 模拟数据"]
n26["PostgreSQL 数据用 DuckDB 加速查询"]
n27["HK 角色阅读"]
n28["HK 台词阅读"]
n29["Hollow Knight 英语主题"]
n30["HK 物品阅读"]
n31["HK 地点阅读"]
n32["HK 世界观 / Lore 阅读"]
n33["HK 英语学习素材清单"]
n34["英语学习 Dashboard"]
n35["English Scraps Archive"]
n36["English Scraps 使用指南"]
n37["Jellyfin 源码阅读指南"]
n38["Lux 资料整理"]
n39["Nest Commander 学习资料"]
n40["NestJS 源码阅读指南"]
n41["Protomaps 自建底图研究"]
n42["自制 PMTiles 地图(最简单例子)"]
n43["MapLibre 集成 Protomaps"]
n44["PMTiles 格式与工具链"]
n45["上海地区底图项目"]
n46["Redash 源码阅读指南"]
n47["Rust 学习计划"]
n48["shadcn/ui 源码阅读指南"]
n49["TRIP 项目核心原理与代码阅读指南"]
n1 --> n24
n6 --> n0
n6 --> n1
n6 --> n2
n6 --> n3
n6 --> n4
n6 --> n5
n6 --> n7
n6 --> n8
n6 --> n9
n6 --> n10
n6 --> n11
n6 --> n21
n12 --> n15
n13 --> n14
n13 --> n17
n13 --> n18
n13 --> n20
n14 --> n13
n14 --> n16
n14 --> n17
n14 --> n18
n15 --> n13
n15 --> n14
n15 --> n16
n15 --> n17
n15 --> n18
n16 --> n13
n16 --> n17
n16 --> n18
n17 --> n20
n18 --> n13
n18 --> n14
n18 --> n17
n18 --> n20
n19 --> n12
n20 --> n13
n20 --> n16
n20 --> n17
n20 --> n18
n20 --> n41
n21 --> n22
n21 --> n24
n21 --> n34
n21 --> n37
n21 --> n38
n21 --> n39
n21 --> n40
n21 --> n41
n21 --> n46
n21 --> n47
n21 --> n48
n21 --> n49
n23 --> n25
n24 --> n1
n24 --> n21
n24 --> n23
n24 --> n25
n24 --> n26
n25 --> n23
n25 --> n26
n26 --> n24
n26 --> n25
n29 --> n27
n29 --> n28
n29 --> n30
n29 --> n31
n29 --> n32
n29 --> n33
n29 --> n36
n33 --> n28
n34 --> n29
n34 --> n35
n34 --> n36
n36 --> n34
n36 --> n35
n41 --> n8
n41 --> n42
n41 --> n43
n41 --> n44
n41 --> n45
n42 --> n44
n43 --> n20
n43 --> n45
n44 --> n42
n44 --> n45
n45 --> n43
n45 --> n44
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/scraps/plans/" "Plans"
click n12 "../../../knowledge/infrastructure/cloud/" "Cloud"
click n13 "../../../knowledge/infrastructure/cloud/object-storage/basic-usage/" "对象存储基本用法(Bucket / Object / 常用操作)"
click n14 "../../../knowledge/infrastructure/cloud/object-storage/data-migration/" "对象存储数据迁移(R2 → MinIO / 跨厂商搬迁)"
click n15 "../../../knowledge/infrastructure/cloud/object-storage/" "Object Storage"
click n16 "../../../knowledge/infrastructure/cloud/object-storage/mount-bucket/" "挂载 Bucket 为本地文件系统(FUSE Mount)"
click n17 "../../../knowledge/infrastructure/cloud/object-storage/signed-url/" "对象存储签名 URL(Signed URL)原理与实战"
click n18 "../../../knowledge/infrastructure/cloud/object-storage/vendors-comparison/" "对象存储供应商对比(S3 / R2 / OSS / Supabase / MinIO)"
click n19 "../../../knowledge/infrastructure/" "Infrastructure"
click n20 "../../../prototypes/" "Prototypes"
click n21 "../../" "Research"
click n22 "../better-auth/" "Better Auth 源码阅读指南"
click n23 "../duckdb/basic-usage/" "DuckDB 环境与基本使用"
click n24 "../duckdb/" "DuckDB 实战研究"
click n25 "../duckdb/mock-data/" "DuckDB 模拟数据"
click n26 "../duckdb/postgresql-acceleration/" "PostgreSQL 数据用 DuckDB 加速查询"
click n27 "../english/hollow-knight/characters/" "HK 角色阅读"
click n28 "../english/hollow-knight/dialogues/" "HK 台词阅读"
click n29 "../english/hollow-knight/" "Hollow Knight 英语主题"
click n30 "../english/hollow-knight/items/" "HK 物品阅读"
click n31 "../english/hollow-knight/locations/" "HK 地点阅读"
click n32 "../english/hollow-knight/lore/" "HK 世界观 / Lore 阅读"
click n33 "../english/hollow-knight/resources/" "HK 英语学习素材清单"
click n34 "../english/" "英语学习 Dashboard"
click n35 "../english/scraps/archive/" "English Scraps Archive"
click n36 "../english/scraps/" "English Scraps 使用指南"
click n37 "../jellyfin/" "Jellyfin 源码阅读指南"
click n38 "../lux/" "Lux 资料整理"
click n39 "../nest-commander/" "Nest Commander 学习资料"
click n40 "../nestjs/" "NestJS 源码阅读指南"
click n41 "./" "Protomaps 自建底图研究"
click n42 "make-own-map/" "自制 PMTiles 地图(最简单例子)"
click n43 "maplibre/" "MapLibre 集成 Protomaps"
click n44 "pmtiles/" "PMTiles 格式与工具链"
click n45 "shanghai-map/" "上海地区底图项目"
click n46 "../redash/" "Redash 源码阅读指南"
click n47 "../rust/" "Rust 学习计划"
click n48 "../shadcn-ui/" "shadcn/ui 源码阅读指南"
click n49 "../trip/" "TRIP 项目核心原理与代码阅读指南"