PostGIS 完全指南
PostGIS 完全指南
从零到精通的 PostgreSQL 空间数据库系统教程
PostGIS 是 PostgreSQL 数据库的空间扩展,它实现了 OGC(Open Geospatial Consortium)的 Simple Feature Access 规范,让关系型数据库具备了存储、查询和分析地理空间数据的能力。本教程共 18 章,涵盖从基础概念到生产部署的完整知识体系。
🎯 适用读者
| 读者类型 | 推荐路径 |
|---|
| 后端开发者 | 第 1-5 章 → 第 13-14 章 → 第 18 章 |
| GIS 工程师 | 第 1-7 章 → 第 8-11 章 → 第 15-16 章 |
| 数据分析师 | 第 1-5 章 → 第 10 章 → 第 14 章 |
| 全栈工程师 | 第 1-5 章 → 第 13 章 → 第 15-16 章 |
| 运维工程师 | 第 2 章 → 第 14-15 章 → 第 17 章 |
📚 章节目录
第一部分:基础入门
| 章节 | 标题 | 核心内容 |
|---|
| 第 1 章 | PostGIS 简介 | OGC 标准、空间数据库概念、适用场景与生态 |
| 第 2 章 | 安装与数据导入 | 扩展安装、Docker 部署、Shapefile/CSV 导入 |
| 第 3 章 | 架构与核心概念 | 空间索引、几何类型体系、坐标系统基础 |
第二部分:核心操作
| 章节 | 标题 | 核心内容 |
|---|
| 第 4 章 | 几何类型详解 | Point/LineString/Polygon/Multi* 类型与操作 |
| 第 5 章 | 空间查询 | ST_Intersects/ST_Contains/ST_Distance 等谓词 |
| 第 6 章 | 空间索引深入 | GiST 索引、R-Tree 原理、性能优化策略 |
| 第 7 章 | 坐标系统与投影 | SRID、投影转换、ST_Transform 实战 |
第三部分:高级功能
| 章节 | 标题 | 核心内容 |
|---|
| 第 8 章 | 地理编码 | 地址解析、反向编码、pg_geocoder 集成 |
| 第 9 章 | 路径规划 | pgRouting、最短路径、TSP 问题 |
| 第 10 章 | 栅格数据 | raster 类型、栅格分析、ST_MapAlgebra |
| 第 11 章 | 拓扑模型 | Topology 类型、拓扑规则、数据校验 |
| 第 12 章 | 三维空间 | Z 坐标、3D 距离、3D 交集分析 |
第四部分:数据交换与集成
| 章节 | 标题 | 核心内容 |
|---|
| 第 13 章 | GeoJSON 与数据交换 | 导入导出、ST_AsGeoJSON、API 设计 |
| 第 16 章 | 前端地图集成 | Leaflet/Mapbox 可视化、Web GIS 架构 |
第五部分:运维与优化
| 章节 | 标题 | 核心内容 |
|---|
| 第 14 章 | 性能优化 | 索引策略、分区、查询计划分析 |
| 第 15 章 | Docker 部署 | 容器化、Docker Compose、生产配置 |
| 第 17 章 | 故障排查 | 常见错误、数据修复、调试技巧 |
| 第 18 章 | 最佳实践 | 数据模型设计、性能规范、真实项目案例 |
🛠️ 环境要求
本教程所有 SQL 示例均基于以下环境:
| 组件 | 版本 |
|---|
| PostgreSQL | 15+ |
| PostGIS | 3.4+ |
| pgRouting | 3.6+(第 9 章) |
| Docker | 24+(第 15 章) |
快速启动实验环境:
docker run -d --name postgis-lab \
-e POSTGRES_PASSWORD=lab123 \
-p 5432:5432 \
postgis/postgis:16-3.4
📖 学习建议
- 动手实践:每章 SQL 代码均可直接运行,建议逐章练习
- 循序渐进:前 7 章是基础,后续章节依赖前置知识
- 关注性能:第 6 章和第 14 章的内容贯穿所有实际应用
- 结合业务:每章都提供真实业务场景,帮助理解抽象概念
🔗 扩展阅读