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