Postgis实现叠加分析之-Union
1.GIS中的叠加分析包括6个,arcgis中可以看出:包括,Erase,Identity,Interse,Spatial Join ,Symmetrical difference,Union,Update。具体可参考Arcgis的帮助文档,网上也能找一堆。参考:https://wenku.baidu.com/view/26c40a7ca8956bec0975e37e.html
2.其中,Union的操作并非集合意义上的合并,还包括空间上的,若从集合角度考虑,ArcGIS中的Union包含了两个geometry的交集部分和差异(不同,非交集)部分,既可以理解为两个部分,具体看下图:
3.而在PostGIS中也有操作ST_Union,改Union主要从集合角度考虑,把两个输入的geometry按照集合概念进行合并:
4.这和以上提及到的GIS空间分析或者Arcgis的分析意义不同,从2可以看出,要想实现ArcGIS中的union效果,需要求解两个geometry的两部分内容,分别是相交部分和非相交部分,
相交部分计算:
geometry ST_Intersection(
geometry geomA , geometry geomB )
;
非相交部分计算:
geometry ST_SymDifference(
geometry geomA, geometry geomB)
;
ST_SymDifference示意:
将以上两个计算的结果组合,就是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)
转载自:https://blog.csdn.net/laowe4535fdvdsa4t6qe/article/details/87645565