ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PostGIS实战教程(四)叠加分析、几何修复、简化聚合+生产避坑大全

PostGIS实战教程(四)叠加分析、几何修复、简化聚合+生产避坑大全 PostGIS实战教程四叠加分析、几何修复、简化聚合生产避坑大全系列专栏PostGIS从入门到生产实战 开篇导语到了项目后期经常遇到多边形合并、区域裁剪、几何顶点太多前端卡顿、导入的面存在自相交无效几何问题。本篇讲解PostGIS高级叠加运算几何简化、修复工具最后整理全系列踩坑清单帮助你规避生产环境各类空间查询BUG。一、几何叠加运算函数ST_Intersection(A,B) 求交集返回A与B重叠部分几何。SELECTST_Intersection(ST_MakeEnvelope(116.39,39.91,116.42,39.93,4326),ST_MakeEnvelope(116.40,39.90,116.43,39.92,4326));ST_Union 合并几何体单行ST_Union(A,B)合并两个几何聚合函数ST_Union(geom)将多条记录几何体合并成单个几何合并行政区。-- 聚合合并所有POI外包框SELECTST_Union(geom)FROMmap_poi;ST_Difference(A,B) A减去BA去掉和B重叠的部分。SELECTST_Difference(geomA,geomB);ST_SymDifference(A,B) 对称差保留A、B互不重叠的区域。二、质心、面打点ST_Centroid(geom)获取几何质心空心多边形质心可能落在面外面。SELECTST_Centroid(ST_MakeEnvelope(116.39,39.91,116.42,39.93,4326));ST_PointOnSurface(geom)一定返回在面内部的点适合面要素标注。三、几何简化 ST_Simplify抽稀顶点减少坐标数量前端渲染优化。-- 普通简化SELECTST_Simplify(geom,0.001);-- 保拓扑简化【生产推荐】不会产生无效几何SELECTST_SimplifyPreserveTopology(geom,0.001);四、几何有效性校验 修复-- 判断几何是否有效自相交多边形等SELECTST_IsValid(geom);-- 修复无效几何体PostGIS3SELECTST_MakeValid(geom);五、聚合函数ST_Union(geom)聚合合并几何体ST_Collect(geom)收集几何体到GeometryCollection不合并速度比ST_Union更快。六、生产避坑总清单全系列汇总空间查询务必建立GIST索引分清 geometry / geography4326 geometry距离单位是度构造函数坐标顺序经度在前纬度在后空间运算的两个几何体SRID必须一致ST_SetSRID只是标记不会转换坐标投影转换使用ST_Transform大数据量空间查询优先ST_DWithin不要用ST_Distance做过滤多边形叠加运算前先使用ST_IsValid检查几何有效性对外接口输出统一使用ST_AsGeoJSON适配VueCesium/Leaflet前端。系列结束语 PostGIS从入门到生产实战系列全部完结本系列覆盖PostGIS开发最高频的函数与场景环境搭建、建表索引、几何构造、坐标转换、空间关系、周边检索、缓冲区、叠加分析、几何修复配套VueCesium前端GeoJSON方案。专栏持续更新GIS相关技术感兴趣可以订阅专栏后续可以更新SpringBoot后端整合PostGIS完整Demo。有问题欢迎评论区留言交流。
返回列表