Postgis实现叠加分析之-Union

时间:2024-03-14 10:31:02

1.GIS中的叠加分析包括6个,arcgis中可以看出:包括,Erase,Identity,Interse,Spatial Join ,Symmetrical difference,Union,Update。具体可参考Arcgis的帮助文档,网上也能找一堆。参考:https://wenku.baidu.com/view/26c40a7ca8956bec0975e37e.html

Postgis实现叠加分析之-Union
 

2.其中,Union的操作并非集合意义上的合并,还包括空间上的,若从集合角度考虑,ArcGIS中的Union包含了两个geometry的交集部分和差异(不同,非交集)部分,既可以理解为两个部分,具体看下图:

Postgis实现叠加分析之-Union

 

3.而在PostGIS中也有操作ST_Union,改Union主要从集合角度考虑,把两个输入的geometry按照集合概念进行合并:

Postgis实现叠加分析之-Union

4.这和以上提及到的GIS空间分析或者Arcgis的分析意义不同,从2可以看出,要想实现ArcGIS中的union效果,需要求解两个geometry的两部分内容,分别是相交部分和非相交部分

相交部分计算:

geometry ST_Intersection( geometry geomA , geometry geomB );

非相交部分计算:

geometry ST_SymDifference(geometry geomA, geometry geomB);

ST_SymDifference示意:

Postgis实现叠加分析之-Union

将以上两个计算的结果组合,就是Arcgis中的union

5.在PostGIS中一些关系

ST_SymDifference(A,B)   =   ST_SymDifference(B,A)

ST_SymDifference(A,B)   ST_Union(A,B) - ST_Intersection(A,B)

ST_Difference(A,B)   =   GeometryA - ST_Intersection(A,B)