1、空間對象字段不建議手動創建,建議使用語句生成空間對象字段,table_name:表名,column_name:生成的列名,3857:坐標系
SELECT AddGeometryColumn ('public','table_name', 'column_name', 3857, 'POINT', 2);
2、把兩個點x,y生成point對象函數
st_point(x, y)
3、設置point的坐標系函數,point為空間點對象,4326表示坐標系
st_setsrid(point,4326)
例:update table_name SET column_name=st_setsrid(st_point(117.4364, 25.9747), 4326) where id='xxx';
4、轉換坐標系函數,g1:空間幾何對象,srid:是坐標系4326,3857...等等
st_transform(geometry g1, integer srid)
5、點在不在面里面函數g1是空間幾何面對象,g2是空間幾何點對象
st_contains(geometry g1,geometry g2)
其他常用方法:
1、幾何對象處理函數:
1.1、獲取幾何對象的中心 ST_Centroid(geometry)
1.2、面積量測 ST_Area(geometry)
1.3、長度量測 ST_Length(geometry)
1.4、返回曲面上的一個點 ST_PointOnSurface(geometry)
1.5、獲取邊界 ST_Boundary(geometry)
1.6、獲取緩沖后的幾何對象 ST_Buffer(geometry, double,[integer])
1.7、獲取多幾何對象的外接對象 ST_ConvexHull(geometry)
1.8、獲取兩個幾何對象相交的部分 ST_Intersection(geometry, geometry)
1.9、將經度小於0的值加360使所有經度值在0-360間 ST_Shift_Longitude(geometry)
1.10、獲取兩個幾何對象不相交的部分(A、B可互換) ST_SymDifference(geometry A,geometry B)
1.11、從A去除和B相交的部分后返回 ST_Difference(geometry A, geometryB)
1.12、返回兩個幾何對象的合並結果 ST_Union(geometry, geometry)
1.13、返回一系列幾何對象的合並結果 ST_Union(geometry set)
1.14、用較少的內存和較長的時間完成合並操作,結果和ST_Union相同 ST_MemUnion(geometry set)
2、幾何對象關系函數:
2.1、獲取兩個幾何對象間的距離 ST_Distance(geometry, geometry)
2.2、如果兩個幾何對象間距離在給定值范圍內,則返回TRUEST_DWithin(geometry, geometry, float)
2.3、判斷兩個幾何對象是否相等(比如LINESTRING(0 0, 2 2)和LINESTRING(0 0, 1 1, 2 2)是相同的幾何對象)ST_Equals(geometry, geometry)
2.4、判斷兩個幾何對象是否分離 ST_Disjoint(geometry, geometry)
2.5、判斷兩個幾何對象是否相交 ST_Intersects(geometry, geometry)
2.6、判斷兩個幾何對象的邊緣是否接觸 ST_Touches(geometry, geometry)
2.7、判斷兩個幾何對象是否互相穿過 ST_Crosses(geometry, geometry)
2.8、判斷A是否被B包含 ST_Within(geometry A, geometry B)
2.9、判斷兩個幾何對象是否是重疊 ST_Overlaps(geometry, geometry)
2.10、判斷A是否包含B ST_Contains(geometry A, geometry B)
2.11、判斷A是否覆蓋 B ST_Covers(geometry A, geometry B)
2.12、判斷A是否被B所覆蓋 ST_CoveredBy(geometry A, geometry B)
2.13、通過DE-9IM 矩陣判斷兩個幾何對象的關系是否成立 ST_Relate(geometry, geometry, intersectionPatternMatrix)
2.14、獲得兩個幾何對象的關系(DE-9IM矩陣) ST_Relate(geometry, geometry)
3、幾何對象存取函數:
3.1、獲取幾何對象的WKT描述 ST_AsText(geometry)
3.2、獲取幾何對象的WKB描述 ST_AsBinary(geometry)
3.3、獲取幾何對象的空間參考ID ST_SRID(geometry)
3.4、獲取幾何對象的維數 ST_Dimension(geometry)
3.5、獲取幾何對象的邊界范圍 ST_Envelope(geometry)
3.6、判斷幾何對象是否為空 ST_IsEmpty(geometry)
3.7、判斷幾何對象是否不包含特殊點(比如自相交)ST_IsSimple(geometry)
3.8、判斷幾何對象是否閉合 ST_IsClosed(geometry)
3.9、判斷曲線是否閉合並且不包含特殊點 ST_IsRing(geometry)
3.10、獲取多幾何對象中的對象個數 ST_NumGeometries(geometry)
3.11、獲取多幾何對象中第N個對象 ST_GeometryN(geometry,int)
3.12、獲取幾何對象中的點個數 ST_NumPoints(geometry)
3.13、獲取幾何對象的第N個點 ST_PointN(geometry,integer)
3.14、獲取多邊形的外邊緣 ST_ExteriorRing(geometry)
3.15、獲取多邊形內邊界個數 ST_NumInteriorRings(geometry)
3.16、同上 ST_NumInteriorRing(geometry)
3.17、獲取多邊形的第N個內邊界 ST_InteriorRingN(geometry,integer)
3.18、獲取線的終點 ST_EndPoint(geometry)
3.19、獲取線的起始點 ST_StartPoint(geometry)
3.20、獲取幾何對象的類型 GeometryType(geometry)
3.21、類似上,但是不檢查M值,即POINTM對象會被判斷為point ST_GeometryType(geometry)
3.22、獲取點的X坐標 ST_X(geometry)
3.23、獲取點的Y坐標 ST_Y(geometry)
3.24、獲取點的Z坐標 ST_Z(geometry)
3.25、獲取點的M值 ST_M(geometry)