SuperAPI AI 工具集

postgis-spatial-sql

数据与分析

查看项目

更新于 10-16 01:29

技能介绍

用途:在空间 SQL 或其后端选型成为关键决策时使用,兼顾语义正确(geometry 与 geography 混淆、SRID 不匹配导致错误结果)与性能(索引未命中导致超长连接)。当要素达数百万级、存在并发读写、反复即席查询、其上需提供 API 或需要事务完整性时,从文件或 GeoPandas 转向 PostGIS;对 GeoParquet 的一次性分析扫描,DuckDB Spatial 常是最快的零安装路径。

主要能力:建表时完整声明 geometry(MultiPolygon, SRID) 并建 GiST 索引,批量导入后 ANALYZE;用 ST_Intersects 做“是否相交”、ST_Contains/ST_Within 做包含、ST_DWithin 做邻近判断(避免 ST_Distance < dist 导致无法用索引);用 <-> 做 KNN 最近邻;大范围多边形先经 ST_Subdivide 拆分;用 ST_IsValid 审计、ST_MakeValid 修复;用 ST_SimplifyPreserveTopology、ST_AsMVT 生成服务用几何。

使用方式:先探查 schema、SRID、几何类型、数据量与查询目标,选定谓词与索引,写可审计的 CTE,查看执行计划,核对结果后安全上线。DuckDB Spatial 用 INSTALL spatial; LOAD spatial; 后可直接查询 GeoParquet、Shapefile、GPKG,默认并行,无 GiST,需实测而非假设。

适用场景与限制:适合并发、反复或需事务的空间负载;一次性有界转换用文件管道或 DuckDB Spatial 更合适。禁止在 4326 geometry 上做 ST_Area/ST_Length 求平方米,禁止用 EPSG:3857 量算面积长度,禁止在连接谓词内 ST_Transform,几何列必须带 SRID。字段要求、基准测试与验证流程在资料中已有说明;具体版本与权威函数清单资料未提供。