Skip to content

Protomaps

开源地图系统研究 —— PMTiles 单文件瓦片格式、工具链、上海地区底图自建项目与 MapLibre 集成。

Sub Topics

阅读顺序 主题 描述
1 PMTiles 格式与工具链 格式原理(HTTP Range Requests、文件结构、去重)与工具链(pmtiles CLI / Tippecanoe / Planetiler)
2 上海地区底图项目 动手实践 —— 从全球底图远程裁剪上海、本地验证、部署
3 自制 PMTiles 地图 最简单例子:GeoJSON → Tippecanoe → .pmtiles → MapLibre 渲染
4 MapLibre 集成 pmtiles 协议注册、@protomaps/basemaps 完整样式、中文标签

推荐阅读顺序

  1. 理解 PMTiles 格式与工具链PMTiles 格式与工具链:格式原理(单文件 + Range 读取)、pmtiles CLI / Tippecanoe / Planetiler 安装
  2. 动手实践上海底图上海地区底图项目:找到构建 → extract 裁剪 → 预览(pmtiles.io)→ 验证 → 本地查看(test-map.html)→ 部署(R2 / S3)
  3. 自制 PMTiles 地图自制 PMTiles 地图:自己的 GeoJSON → Tippecanoe → .pmtiles → MapLibre 渲染(进阶)

MapLibre 深入集成(React 组件、样式切换、性能优化)另见 MapLibre 集成

相关笔记

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 项目核心原理与代码阅读指南"
Links (5)