POSTGIS函数
一、PostGIS 的Geometry/Geography/Box類型
1.box2d
box2d —box2d是一中包含 x min, ymin, xmax, ymax的二維幾何類型,反映封閉箱子狀幾何對象的范圍, ST_Extent函數在PostGIS 1.4版本之前的更早版本會返回一個box2d對象。
2.box3d
box3d —box3d是postgis包含 x min, ymin, zmin, xmax, ymax, zmax,反映三維的幾何類型,通常用來返回一個幾何對象或一系列幾何對象的3維擴展區域。ST_3DExtent 返回一個box3d 對象。
注意:box2d、box3d、geometry類型自動也可以是顯式地轉換成其他類型的方式
SELECT geometry(( box2d( box3d(geom)))) FROM public.near_point
3.geometry
geometry 是一個基本的 postgis空間數據類型,用于表示歐幾里得空間坐標系的一種幾何特征(譯者注:例如點、線等等), 這種類型自動也可以是顯式地轉換成其他類型的方式:
轉換成的目標類型 轉換方式
box 自動
box2d 自動
box3d 自動
bytea 自動
geography 自動
text 自動
4.geometry_dump
一種包含geom和路徑兩個字段的空間數據類型。-geom(包含一個幾何類型對象),path[](是一個含有被導出的幾何對象位置信息的1-d(d表示維度)數組)是一個復合數據類型,可以根據數組原理,導航獲取路徑某個位置的元素,可以反映一個復
雜的幾何對象的組合部分和定位部分。
5.geography
geography是一種在地球參考系中代表一種幾何對象的空間數據類型, 這種類型自動也可以是顯式地轉換成其他類型的方式:geometry
二、管理函數
1.AddGeometryColumn
AddGeometryColumn —添加一個幾何類型的列到一個已經存在的表中。
2.DropGeometryColumn
從一個空間表中刪除一個幾何類型的列
3.DropGeometryTable
刪除一個表及其在geometry_columns 中的引用
4.Populate_Geometry_Columns
確保geometry類型的列是用typmod方式來定義的或者有合適的空間約束條件,這樣才能保證
這些列能被正確地注冊到geometry_columns這個視圖中。默認情況下會將所有的非typmod定義的geometry類型列轉換為
typmod方式的,如果想用老的方式,需要把use_typmod值設為false
5.UpdateGeometrySRID
更新包括一個geometry類型列,該列在geometry_columns 元數據信息及SRID的所有信息。如果該列被
添加了強制約束,強制約束會被更新為新的SRID,如果是用typmod形式的定義,類型修改符也會被更新
三、幾何對象創建函數
1.ST_BdPolyFromText
根據一個任意的封閉的WKT描述的MultiLineString幾何類型對象創建一個Polygon對象
2.ST_BdMPolyFromText
根據一個任意的封閉的WKT描述的MultiLineString幾何類型對象創建一個MultiPolygon 對象.
3.ST_Box2dFromGeoHash
從一個GeoHash字符串返回一個BOX2D對象
4.ST_GeogFromText
從一個WKT規范描述的對象返回一個具體的geography對象
5.ST_GeographyFromText
從一個WKT規范描述的對象返回一個具體的geography對象
6.ST_GeogFromWKB
從一個WKB或EWKB規范描述的對象返回一個具體的geography對象
7.ST_GeomCollFromText
根據WKT和給定的SRID值創建一個geometry collection類型的對象,如果SRID值沒有給出,默認為
0,
SELECT ST_GeomCollFromText(‘GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(1 2, 3 4))’);
8.ST_GeomFromEWKB
從一個EWKB描述的幾何對象返回一個具體的ST_Geometry值.
9.ST_GeomFromEWKT
從一個EWKT描述的幾何對象返回一個具體的ST_Geometry值.
10.ST_GeometryFromText
根據WKT描述的對象返回一個具體的ST_Geometry 函數值(也是一個geometry對象),該函數是ST_GeomFromText的別名,即兩者等價
11.ST_GeomFromGeoHash
從一個GeoHash型字符串返回一個geometry對象類型
12.ST_GeomFromGML
根據一個geometry對象的GML描述,返回一個PostGIS的geometry類型對象
13.ST_GeomFromGeoJSON
該函數根據一個geojson描述的幾何對象,生成一個PostGIS 的geometry對象
14.ST_GeomFromKML
該函數根據一個KML描述的幾何對象,生成一個PostGIS 的geometry對象
15.ST_GMLToSQL
根據GML表述的對象返回一個ST_Geometry值,這個函數是ST_GeomFromGML的別名
16.ST_GeomFromText
根據WKT描述返回一個具體的ST_Geometry 值
17.ST_GeomFromWKB
根據WKB表述創建一個geometry幾何類型對象,SRID可選
18.ST_LineFromMultiPoint
從一個MultiPoint幾何類型中返回一個LineString類型對象
19.ST_LineFromText
根據WKT表述和給定的SRID創建一個geometry幾何類型對象,如果SRID沒有給定默認設置為0
20.ST_LineFromWKB
根據WKB表述和給定的SRID創建一個LINESTRING幾何類型對象
21.ST_LinestringFromWKB
根據WKB表述和給定的SRID創建一個geometry幾何類型對象
22.ST_MakeBox2D
根據給定的point幾何類型創建BOX2D對象
23.ST_3DMakeBox
根據3D 類型的point幾何類型創建BOX3D對象
24.ST_MakeLine
根據point或line 類型的集合創建Linestring類型對象
25.ST_MakeEnvelope
根據給定的最小值范圍和最大值范圍生成一個矩形,輸入值必須是SRS(spatial_reference_system表)規定的SRID值
26.ST_MakePolygon
根據給定的閉合的LineString類型
27.ST_MakePoint
創建一個2D,3DZ or 4D point 幾何類型.
28.ST_MakePointM
使用x,y,m坐標創建一個point 幾何類型對象
29.ST_MLineFromText
根據WKT表述的幾何對象返回ST_MultiLineString值
30.ST_MPointFromText
根據WKT表述和給定的SRID創建一個geometry幾何類型對象,如果SRID沒有給定默認設置為0
31.ST_MPolyFromText
根據WKT表述和給定的SRID創建一個MultiPolygon Geometry幾何類型對象,如果SRID沒有給定默認設置為0
32.ST_Point
根據給定的坐標值,返回ST_Point值對應的幾何類型對象,這個函數是OGC 函數ST_MakePoint 的別名
33.ST_PointFromGeoHash
根據GeoHash字符串返回一個point幾何類型對象
34.ST_PointFromText
根據WKT表述和給定的SRID創建一個geometry幾何類型對象,如果SRID沒有給定默認設置為0,即未知
35.ST_PointFromWKB
根據WKB表述和給定的SRID創建一個geometry幾何類型對象,如果SRID沒有給定默認設置為0,即未知
36.ST_Polygon
根據具體的linestring類型對象和SRID創建一個polygon對象
37.ST_PolygonFromText
根據WKT表述和給定的SRID創建一個geometry幾何類型對象,如果SRID沒有給定默認設置為0,即未知
38.ST_WKBToSQL
根據WKB描述的對象參數,返回一個geometry類型對象,這個函數是ST_GeomFromWKB的別名,但ST_WKBToSQL這個函數沒有SRID參數
39.ST_WKTToSQL
根據WKT描述的對象參數,返回一個geometry類型對象,這個函數是ST_GeomFromWKT的別名
四、幾何類型存取函數
1.GeometryType
該函數以字符串方式返回幾何對象的幾何類型,例如’LINESTRING’, ’POLYGON’, ’MULTIPOINT’等等
2.ST_Boundary
返回這個幾何類型對象的邊界組成的閉包
3.ST_CoordDim
返回ST_ Geometry 值對應的幾何類型的坐標維度值
4.ST_Dimension
返回輸入的幾何對象固有的維度值,這個維度值必須小于或等于坐標系的維度值
5.ST_EndPoint
返回一個LINESTRING的最后一個point對象, 返回一個線段的最后一個point對象,如果輸入參數不是LINESTRING類型,則返回為NULL值
6.ST_Envelope
從提供的geometry類型中返回一個box的邊界值精度為float8的geometry類型(譯者注:是一個凸包)
7.ST_ExteriorRing
返回一個POLYGON 幾何類型的外環,如果輸入類型不是POLYGON類型,返回NULL值,該函數不支持MULTIPOLYGON
8.ST_GeometryN
該函數的輸入參數是一個collection對象和一個整數N值,返回這個collection里面的第N個對象,這些collection類型可以是GEOMETRYCOLLECTION, (MULTI)POINT, (MULTI)LINES,MULTICURVE or (MULTI)POLYGON, POLYHEDRALSURFACE,其他值返回為NULL
9.ST_GeometryType
返回ST_Geometry值對應的幾何對象的幾何類型
10.ST_InteriorRingN
返回一個POLYGON幾何類型的第N個內環,如果輸入的geometry類型不是POLYGON類型或者N超出了范圍,返回NULL值
11.ST_IsClosed
如果LINESTRING是閉合的,即起點和終點重合,那么該函數返回值為TRUE,對于Polyhedral surface類型來說,它可能是閉合的
12.ST_IsCollection
如果參數是一個collection類型的幾何對象如 (MULTI*, GEOMETRYCOLLECTION, …),則返回值為TRUE
13.ST_IsEmpty
如果輸入的geometry參數是空的geometry collection或者空的polygon或者空的point類型等等,那么返回值將會是TRUE
14.ST_IsRing
如果LINESTRING是簡單、閉合的,則返回TRUE
15.ST_IsSimple
如果輸入的geometry類型沒有不規則的幾何點,比如自我相交或者自我相切,則返
回值為TRUE
16.ST_IsValid
如果ST_ Geometry返回的值是滿足WKT或EWKT或WKB或EWKB描述的,那么這個函數返回值是TRUE
17.ST_IsValidReason
返回一個geometry是否是有效的,以及無效的原因
18.ST_IsValidDetail
返回幾何類型是否有效以及無效原因和無效的幾何對象是哪些
19.ST_M
返回一個點的M坐標,如果輸入不是point類型,返回NULL。輸入值必須是point類型
20.ST_NDims
返回一個geometry類型的坐標維度,類型是small int類型,值為2,或4
21.ST_NPoints
返回geometry的頂點個數
22.ST_NRings
如果輸入的幾何類型對象是polygon或者multi-polygon,返回環的個數
23.ST_NumGeometries
返回geometry類型是 GEOMETRYCOLLECTION (或 MULTI*類型)里面包含的幾何對象個數,對于單個幾何對象,返回1,其他情況返回NULL
24.ST_NumInteriorRings
返回輸入幾何對象里面第一個polygon對象里面的內環數,該函數支持POLYGON 和
MULTIPOLYGON,如果geometry中沒有polygon對象,則返回NULL
25.ST_NumInteriorRing
返回geometry對象里面第一個polygon里面包含的內環數(譯者注:這個geometry對象里面包含多個polygon,最大的polygon在外面,該函數就是計算最大的polygon里面含有多少個子polygon) 該函數與ST_NumInteriorRings等價
26.ST_NumPatches
返回 Polyhedral Surface的面熟. 對于非polyhedral 幾何類型對象返回NULL值.
27.ST_NumPoints
返回ST_LineString 或 ST_CircularString 值對應的幾何對象里面包含的point對象個數
28.ST_PatchN
返回至少包含一個面的geometry對象的第N個面,支持的輸入類型是POLYHEDRALSURFACE, POLYHEDRALSURFACEM. 否則返回NULL值
29.ST_PointN
返回單個linestring 或 circular linestring的第N個point對象. 如果幾何對象里面不包括LINESTRING對象,則返回NULL
30.ST_SRID
返回ST_ Geometry值對應對象的SRID值,該值必須存在spatial_ref_sys表中
31.ST_StartPoint
返回LINESTRING幾何對象的起點
32.ST_Summary
返回geometry對象的文本概要
33.ST_X
返回點的X坐標,如果輸入參數不是一個點,返回NULL,輸入必須是一個點類型
34.ST_XMax
返回2d或3d的bounding box 或一個幾何對象(譯者注:bonding box是包含一個區域的最小矩形)的X最大值
35.ST_XMin
返回bounding box或者2d或3d或geometry的X方向范圍的最小值
36.ST_Y
返回輸入點的Y坐標,如果輸入不是點,返回NULL,輸入必須是點類型
37.ST_YMax
返回bounding box 或者2d或3d或geometry的Y方向范圍的最大值.
38.ST_YMin
返回bounding box 或者2d或3d或geometry的Y方向范圍的最小值
39.ST_Z
返回輸入點的Z坐標,如果輸入不是點,返回NULL,輸入必須是點類型
40.ST_ZMax
返回bounding box 或者2d或3d或geometry的Z方向范圍的最大值
41.ST_Zmflag
返回一個幾何對象的ZM標識,值的對應關系如下,對于2d對象,ZM值為1記為0=2d,以此類推 1=3dm, 2=3dz, 3=4d.
42.ST_ZMin
返回bounding box 或者2d或3d或geometry的Z方向范圍的最小值
五、幾何類型對象編輯函數
1.ST_AddPoint
在LINESTRING對象的某個點的位置之前添加一個點(點的位置計數從0開始)
2.ST_Affine
對一個幾何對象在一個步驟中進行3d仿射變換,比如轉換、旋轉、放大等操作
3.ST_Force2D
將一個幾何對象轉換成2維中的對象,轉換后的對象只有X和Y坐標(譯者注:其他維度的坐標會被丟棄)
4.ST_Force3D
將幾何對象轉換成XYZ模式,該函數是ST_Force3DZ別名
5.ST_Force3DZ
將幾何對象轉換成XYZ模式,該函數是ST_Force3D別名
6.ST_Force3DM
將幾何對象轉換為XYM模式
7.ST_Force4D
將一個幾何對象轉換為XYZM模式
8.ST_ForceCollection
把geometry對象轉換成GEOMETRYCOLLECTION類型對象
9.ST_ForceSFS
把幾何對象轉換成符合SFS 1.1版本規范的幾何類型對象
10.ST_ForceRHR
按照右手坐標定則對polygon的頂點進行轉向
11.ST_ForceCurve
把一個geometry對象向上轉型為對應的curve 類型,如果可以的話(譯者注:向上轉型和Java里面的向上轉型類似)
12.ST_LineMerge
把一些LineString對象組合在一起,形成一個MULTILINESTRING對象
13.ST_CollectionExtract
根據輸入的(multi)幾何對象,返回一個(multi)幾何對象,返回的幾何對象只包含指定的類型的元素
14.ST_CollectionHomogenize
根據給定的geometry collection對象,返回一個最簡化的對象
15.ST_Multi
返回幾何對象為一個MULTI* 類型幾何對象,如果幾何對象本身就是MULTI*類型的,返回值不變,即和輸入一樣.
16.ST_RemovePoint
從一個LINESTRING對象中移除一個Point點,下標從0開始
17.ST_Reverse
按頂點的逆序返回一個geometry對象
18.ST_Rotate
返回一個幾何對象以某個點為中心點,逆時針旋轉指定弧度后的對象
19.ST_RotateX
將一個幾何對象繞X軸旋轉指定弧度
20.ST_RotateY
將一個幾何對象繞Y軸旋轉指定弧度
21.ST_RotateZ .
將一個幾何對象繞Z軸旋轉指定弧度
22.ST_Scale
通過將輸入對象的坐標乘以一個系數來對對象進行縮放(縮小和放大),例如ST_Scale(geom, Xfactor,Yfactor, Zfactor).
23.ST_Segmentize
返回一個修改后的geometry對象,讓這個對象的的每一段的長度不能超過給出的最大長度。只在2D維度能進行計算。對于幾何對象來說,長度單位需要在SRS表中,對于geography地理對象來說,距離單位是米
24.ST_SetPoint
用給定的點替換一個LINESTRING對象的第N個點,下標從0開始
25.ST_SetSRID
把一個幾何對象設置為一個給定的SRID值
26.ST_SnapToGrid
把輸入的幾何對象的所有點重新組成一個規則的柵格
27.ST_Snap
把一個輸入的幾何對象的片段和頂點切割后重新組裝成一個參考類型的幾何對象
28.ST_Transform
返回一個根據給定的SRID轉換成新的坐標系對象
29.ST_Translate
把一個幾何對象根據指定的輸入偏移地址,移動到一個新的位置。例如ST_Translate(geom, X,Y) 或者ST_Translate(geom, X, Y,Z).
30.ST_TransScale
根據輸入的縮放倍數,對一個幾何對象進行縮放,縮放因子為Xfactor和Yfactor參數,該函數只支持2D對象
六、幾何對象輸出函數
1.ST_AsBinary
返回一個沒有SRID信息的WKB描述的geometry或geography對象
2.ST_AsEWKB
返回一個帶有SRID信息的WKB描述的geometry對象
3.ST_AsEWKT
返回一個帶有SRID信息的WKT描述的geometry對象.
4.ST_AsGeoJSON
返回一個GeoJSON格式(譯者注:GeoJSON是一種類似json的格式數據,適用于地理編碼)的幾何對象.
5.ST_AsGML
返回GML 2或GML 3版本格式描述的幾何對象
6.ST_AsHEXEWKB
返回HEXEWKB格式(文本表示)的geometry對象,對NDR數據使用little-endian編碼,對XDR數據使用
7.ST_AsKML
返回一個幾何對象的KML 元素表示。該函數有幾種形式,該函數默認的version值為2,默認的precision值為15
8.ST_AsSVG
根據給定geometry或geography對象,在一個SVG 數據中返回一個geometry對象
9.ST_AsX3D
以X3D xml節點元素返回返回一個幾何對象,格式遵守: ISO-IEC-19776-1.2-X3DEncodings-XML
10.ST_GeoHash
返回一個幾何對象的GeoHash表示
11.ST_AsText
返回不含有SRID信息的geometry或geography對象的WKT表示
12.ST_AsLatLonText
返回一個給定的度、分、秒表示
13.ST_AsTWKB
輸出TWKB(即Tiny WKB)描述的幾何對象
14.ST_AsTWKBAgg
聚合一些幾何對象,并返回TWKB格式的描述對象
七、幾何對象之間運算符
1.&&
如果輸入對象A的2D bounding box與輸入對象B的2D bounding box有交集,則返回TRUE
2.&&&
如果輸入對象A的n-D bounding box與輸入對象B的n-D bounding box有交集,則返回TRUE
3.&<
如果輸入幾何對象A的bounding box與輸入幾何對象B的bounding box重合或者在后者的左邊,則返回TRUE
4.&<|
如果A的bounding box覆蓋或在B的bounding box的下側,則返回TRUE
5.&>
如果A的bounding box覆蓋或在B的bounding box的右側,則返回TRUE
6.<<
如果A的bounding box嚴格地在B的bounding box左側,則返回TRUE
7.<<|
如果A的bounding box嚴格地在B的bounding box下側,則返回TRUE
8.=
如果A的bounding box與B的bounding box相同,則返回TRUE。注意:輸入的A和B幾何對象的bounding box都是雙精度
9.>>
如果幾何對象A的bounding box嚴格在幾何對象B的右邊,則返回true
10.@
如果幾何對象A的bounding box被幾何對象B的bounding box嚴格包含,則返回true
11.|&>
如果幾何對象A的bounding box覆蓋B的bounding box或在B的bounding box上面,則返回true
12.|>>
如果A的bounding box嚴格地在B的bounding box上面,則返回TRUE
13.~
如果A的bounding box包含B的bounding box,則返回TRUE
14.~=
如果A的bounding box和B的bounding box相同,則返回TRUE
15.<->
返回兩個點的距離. 對于point或point類型檢查,該運算符會使用浮點精度(相對于基本的幾點對象所使用的double 雙精度)。對于其他幾何類型,返回的是bounding box的中心點之間的雙精度輸出距離。在距離排序和使用KNN 功能進行近鄰限制輸出對象個數時候很有用。
16.<#>
返回兩個幾何對象的bounding box之間的距離。該運算符會使用浮點精度(相對于基本的幾點對象所使用的double 雙精度)。對于其他幾何類型,返回的是bounding box的中心點之間的雙精度輸出距離。在距離排序和使用KNN 功能進行近鄰限制輸出對象個數時候很有用。
八、幾何對象空間關系和測量函數
1.ST_3DClosestPoint
返回3維內離g2幾何對象最近的g1上的點。這個點也是g1和g2之間最短的線的第一個點
2.ST_3DDistance
對于3維的geometry類型對象,返回兩個幾何對象的最短笛卡爾距離(基于SRS表),單位以投影系單位為準
3.ST_3DDWithin
如果兩個幾何對象的三維距離指定的距離值范圍內,則返回TRUE
4.ST_3DDFullyWithin
如果3D對象的距離在另一個指定的距離值范圍內,則返回TRUE
5.ST_3DIntersects
如果幾何對象在3維空間內相交,則返回TRUE,該函數只適用于Point和LINESTRING類型
6.ST_3DLongestLine
返回兩個幾何對象之間最長的3維線段
7.ST_3DMaxDistance
對于3維的geometry類型對象,返回兩個幾何對象的最大笛卡爾距離(基于SRS表),單位以投影系單位為準
8.ST_3DShortestLine
返回兩個3維幾何對象之間最短的線段
9.ST_Area
返回輸入對象是polygon或者multi-polygon對象的面積。對于geometry對象來說,面積單位是SRID規定的單位,對于geography對象,面積是平方米
10.ST_Azimuth
返回幾何對象點A從正北方向按順時針旋轉到點B時候所需要的角度
11.ST_Centroid
返回一個幾何對象的幾何中心
12.ST_ClosestPoint
返回2維平面內離g2幾何對象最近的g1上的點。這個點也是g1和g2之間最短的線的第一個點
13.ST_Contains
當且僅當幾何對象B的所有點沒有在幾何對象A的外部,并且B最少有一個點在A的內部(譯者注:意思A把B完全包含了)
14.ST_ContainsProperly
如果輸入幾何對象B和幾何對象A的內部相交,但不和A的邊界(或外部)有接觸,那么返回TRUE。
15.ST_Covers
如果geometry或geography對象B的所有點都不在geometry或geography對象A的外部,則返回1(即TRUE)
16.ST_CoveredBy
如果geometry或geography對象A的所有點都不在geometry或geography對象B的外部,則返回1(即TRUE)
17.ST_Crosses
如果兩個輸入的對象有部分交集但不是完全相交,則該函數返回TRUE
18.ST_LineCrossingDirection
根據兩個LINESTRING,返回一個范圍在-3到3之間的數字,該數字表示這兩個LINESTRING的相交方式。0表示這兩個幾何對象沒有相交關系.
19.ST_Disjoint
如果兩個幾何對象沒有空間相交則返回TRUE,如果他們沒有共同的空間
20.ST_Distance
對于geometry類型對象,返回兩個幾何對象的2維的最小笛卡爾距離。對于geography類型對象,返回WGS84參考系兩個geography對象之間的最小空間距離,距離單位是米
21.ST_HausdorffDistance
返回兩個幾何對象的Hausdorff 距離。該距離用來表示兩個幾何對象有多類似或有多不相同。距離單位是這兩個幾何對象所在的空間參考系所用的距離單位
22.ST_MaxDistance
返回兩個幾何對象的最長距離,距離單位是投影單位
23.ST_Distance_Sphere
返回兩個以經緯度表示的幾何對象的最小距離。該函數使用一個半徑為6370986 球體做參照。該函數的計算比ST_Distance_Spheroid要快,但是精度要差一些
24.ST_Distance_Spheroid
根據給定的橢球面參考系,計算兩個經緯度表示的幾何對象的最小距離。PostGIS 1.5
版本之前只支持Point類型對象
25.ST_DFullyWithin
如果輸入的所有幾何對象之間的距離都在一個指定的距離內,那么返回TRUE
26.ST_DWithin
如果輸入的幾何對象的都在以一個點為中心的指定的距離范圍內則返回TRUE。對于geometry類型對象,單位以SRS表中的距離單位為標準。如果是geography類型,單位是米。
27.ST_Equals
返回給定的幾何對象是否是相同的幾何對象,不考慮幾何對象之間的方向差異(譯者注:比如有一個幾何對象,將該幾何對象繞著其中一個頂點旋轉20度,得到一個新的幾何對象,那么這個旋轉后的幾何對象和原來的幾何對象是相同的,因為不考慮方向)
28.ST_HasArc
如果一個geometry對象或geometry collection包含一個CircularString對象,則返回TRUE
29.ST_Intersects
如果Geometries/Geography在2維空間內有相交(有共同的空間部分),則返回TRUE。如果他們不相交,那么返回FALSE。對于geography類型對象—誤差是0.00001米(因此許多很靠近的點會被認為是相交(即重合))
30.ST_Length
返回一個LINESTRING或MULTILINESTRING類型對象的2維長度。長度單位對于geometry類型對象來說以空間參考系規定的單位為標準,geography類型以橢圓參考系為參考系,單位是米
31.ST_Length2D
返回一個LINESTRING或MULTILINESTRING類型對象的2維長度,該函數是函數ST_Length的別名
32.ST_3DLength
返回一個LINESTRING或MULTILINESTRING類型對象的3維或2維長度。
33.ST_Length_Spheroid
在橢圓參考系中計算一個linestring/multilinestring的2D或3D長度,如果幾何類型對象的坐標是經緯度形式,并且長度不需要重投影的話,使用該函數很有用
34.ST_Length2D_Spheroid
在橢圓參考系中計算一個linestring/multilinestring的2D長度,如果幾何類型對象的坐標是經緯度形式,并且長度不需要重投影的話,使用該函數很有用
35.ST_3DLength_Spheroid
返回一個橢圓面的幾何類型對象的長度,該函數會考慮到高度坐標,該函數只是函數
ST_Length_Spheroid的別名。
36.ST_LongestLine
返回兩個幾何對象之間的2維最長距離。如果有多個線段都是最長線段,那么返回第一個最長的。該線段的起點在g1,終點在g2.該函數返回的線段的長度與用函數ST_MaxDistance計算g1和g2的距離值一樣
37.ST_OrderingEquals
如果兩個輸入的幾何對象表示相同的幾何對象,并且幾何對象的點的順序也是一致的,那么返回值為TRUE
38.ST_Overlaps
如果幾何對象之間有共同的空間,相同的維度,但是互相之間沒有相互包含,那么返回TRUE
39.ST_Perimeter
返回ST_Surface 或 ST_MultiSurface (返回Polygon, Multipolygon類型對象) 值對應的geometry 和geography類型對象的周長。對于geometry類型對象,返回的長度以空間參考系規定的單位做標準,對于geography類型對象,單位是米
40.ST_Perimeter2D
如果輸入對象是polygon 或multipolygon對象,則返回2維周長。該函數是函數ST_Perimeter的別名
41.ST_3DPerimeter
如果輸入對象是polygon 或multipolygon對象,則返回3維周長。
42.ST_PointOnSurface
返回一個必然在Surface對象上的
43.ST_Project
返回一個輸入類型為距離(單位:米)和方位角(單位:弧度)經投影轉換后的Point類型
44.ST_Relate
根據輸入參數intersectionMatrixPattern的值,檢查兩個幾何對象的內部、邊界、外部是否有相交,如果有,則返回true。
45.ST_RelateMatch
如果參數intersectionMattrixPattern1 滿足了 intersectionMatrixPattern2參數對應的空間關系,則返回TRUE
46.ST_ShortestLine
返回兩個幾何對象之間最短的2維線段
47.ST_Touches
如果兩個幾何對象最少有一個共同點且他們的內部并不相交,那么返回TRUE
48.ST_Within
如果輸入幾何對象A完全在幾何對象B范圍內,則返回TRUE
九、Using SFCGAL Advanced 2D/3D functions
1.ST_Extrude .
把一個Surface類型對象拉伸一定體積
2.ST_StraightSkeleton
從一個幾何對象中計算出一個直線組成的框架。
3.ST_IsPlanar
檢驗一個面是否是平面
4.ST_Orientation
確定表面方向
5.ST_ForceLHR
強制對輸入的幾何對象做左手定則轉換
6.ST_MinkowskiSum
求 Minkowski (閔可夫斯基)和
7.ST_Tesselate
對一個Surface進行曲面三角形化切割
十、幾何對象處理函數
1.ST_Buffer
對geometry類型對象來說,返回以給定點為中心點,距離小于或等于指定距離的所有點組成的幾何對象。計算方式是按照spatial_ref_sys表中對該類型的幾何對象的描述來計算的。對于geography類型對象:使用一個2D維度轉換包裝器。PostGIS 1.5版本引入了對不同的end cap和mitre參數的設置來控制幾何對象的形狀。buffer_style參數控制如下:quad_segs=#,endcap=round|flat|square,join=round|mitre|bevel,mitre_limit=#.#
2.ST_BuildArea
根據給定的幾何對象,創建一個由線條類對象組成的平面幾何對象
3.ST_Collect
從其他幾何類型對象的collection 返回一個具體的ST_Geometry值(對應的對象)
4.ST_ConcaveHull
返回包含所有輸入幾何對象的凹包。你可以認為這是一個收縮的包
5.ST_ConvexHull
返回包含所有幾何對象的最小的凸包
6.ST_CurveToLine
把一個CIRCULARSTRING/CURVEDPOLYGON對象轉換成一個LINESTRING/POLYGON對象
7.ST_DelaunayTriangles
根據輸入對象的頂點對象,返回一個Delaunay 三角形化的結果。(譯者注:所謂三角形化就是把輸入的幾何對象分成一個個三角形,有點類似微積分里面的思想)
8.ST_Difference
根據輸入的幾何對象A和B,返回一個幾何對象A的除了和幾何對象B相交的剩余部分
9.ST_Dump
返回一個組成輸入幾何對象g1的geometry_dump (geom,path) 行集合
10.ST_DumpPoints
返回組成一個幾何對象的所有點。
11.ST_DumpRings
返回將一個polygon對象 展開后dump出外環和內環的結果
12.ST_FlipCoordinates
互換一個輸入幾何對象的X和Y坐標,對于用戶將經度/維度坐標錯誤輸入成維度/經度時候很有用,可以用這個函數來修復它
13.ST_Intersection
返回幾何對象相交的點集對應的geometry對象。對于geography類型對象,該函數會先將其轉化成geometry類型對象,然后再轉換成WGS84下的坐標
14.ST_LineToCurve
把一個LINESTRING/POLYGON 轉換成一個CIRCULARSTRING, CURVED POLYGON類型對象
15.ST_MakeValid
不丟棄頂點的情況下,嘗試把無效的幾何對象轉換成有效的幾何對象
16.ST_MemUnion
與函數ST_Union功能一樣,但是會使用更少的內存以及更多的處理時間
17.ST_MinimumBoundingCircle
返回包含一個幾何對象的最小的Circle Polygon對象。默認對四分之一圓做48等分弧段分割
18.ST_Polygonize
聚合函數,從一個線條類的幾何類型對象幾何創建一個包含Polygon對象的GeometryCollection類型對象
19.ST_Node
對LINESTRING對象添加節點進行分隔
20.ST_OffsetCurve
根據一個輸入的線和偏移的距離,返回一個偏移后的線。對于計算中心線的平行線很有用
21.ST_RemoveRepeatedPoints
返回一個刪除重復點的幾何對象
22.ST_SharedPaths
返回兩個輸入的linestrings/multilinestrings類型對象公用的path路徑代表的collection對象
23.ST_Shift_Longitude
讀取每個幾何對象的點或頂點的坐標,如果經度小于0,則加上360,如果大于0則不加。該函數返回的經緯度結果在0到360度范圍內以便在平面地圖內展現
24.ST_Simplify
使用Douglas-Peucker 算法簡化一個給定的幾何對象,并返回
25.ST_SimplifyPreserveTopology
使用Douglas-Peucker算法,根據給定的幾何對象,返回一個簡化版的幾何對象。該函數會避免創建新的派生的無效的幾何對象(特別是多邊形)
26.ST_Split
通過切割一個幾何對象,返回一個collection 幾何對象。
27.ST_SymDifference
返回輸入對象A和B union后再去除A和B相交的部分。該函數是一個對稱性函數,因為下面等式成立ST_SymDifference(A,B) = ST_SymDifference(B,A).
28.ST_Union
返回一個代表一些幾何對象的并集的幾何對象
29.ST_UnaryUnion
與函數ST_Union類似,但處理geometry類型的對象
十一、線性函數參考
1.ST_LineInterpolatePoint
返回在一個LINESTRING對象上面在指定位置上插入(獲取)的一個點的幾何對象。第二個參數范圍是0到1內的float8類型,表示被插入的點在整個LINESTRING的位置。(譯者注:比如0.5是在中心位置插入,0.333可以認為是
在1/3位置插入)
2.ST_LineLocatePoint
根據輸入的點和LINESTRING,返回這個點在LINESTRING上的位置(如果點不在這個LINESTRING上,就返回最近的)
3.ST_LineSubstring
從一個LINESTRING鐘返回一個從輸入的LINESTRING提取指定起點和終點的片段,第二個和第三個參數都是float8類型,值范圍在0到1。譯者注:該函數其實就是切割一個LINESTRING對象片段,像提取字符串一樣
4.ST_LocateAlong
返回幾何對象的M值與給定的M值一樣的幾何對象,目前不支持多邊形類的幾何對象
5.ST_LocateBetween
根據指定的測量值范圍,返回一個在輸入幾何對象的M坐標能匹配的的geometry collection 對象,不支持Polygon對象
6.ST_LocateBetweenElevations
返回高度值在指定范圍內的幾何對象(collection)。目前只支持 3D, 4D LINESTRINGS 和MULTILINESTRINGS
7.ST_InterpolatePoint
根據提供的點,返回輸入幾何對象離提供的點最近的點的M值
8.ST_AddMeasure
在輸入幾何對象的起點和終點之間進行線性插值, 返回一個新的帶有M值的幾何對象,如果輸入的幾何對象沒有測量維度的M值,那么就自動駕駛。如果輸入的幾何對象有M值,那么會覆蓋掉。目前該函數只支持LINESTRINGS 和 MULTILINESTRINGS
十二、長事務支持
1.AddAuth
添加一個用于當前事務的鑒權令牌(authorization token),如果成功返回true
2.CheckAuth
基于鑒權令牌(authorization token),在一個表上創建一個阻止或允許更新或刪除表記錄的觸發器
3.DisableLongTransactions
關閉長事務支持。該函數會移除對長事務支持所創建的元數據信息表(保存這些空間表的相關信息),并丟掉所有表上面的鎖檢測的觸發器
4.EnableLongTransactions
開啟長事務支持。該函數會創建開啟事務支持所必須的元數據表。在使用本章節其他函數(本節的函數都需要事務支持)前需要調用該函數一次,當然再執行一次也沒有什么問題
5.LockRow
對于一個表中具體的行加鎖或者說加認證
6.UnlockRows
根據認證token,移除所有記錄的鎖,返回被釋放的記錄數
十三、雜函數
1.ST_Accum
聚合函數,返回輸入幾何對象形成的數
2.Box2D
返回一個幾何對象的最大擴展BOX2D對象
3.Box3D
返回一個幾何對象的最大擴展BOX3D對象
4.ST_EstimatedExtent
返回一個給定的空間類型的估算box2d對象。該估算是基于對幾何類型列的統計。如果沒有指定schema,使用當前current_schema()對應的值
5.ST_Expand
根據輸入幾何對象的bounding box返回一個向各個方向擴展的bounding box。輸出對象的坐標精度使用雙精度
6.ST_Extent
一個返回包含多個geometry對象的bounding box的聚集函數
7.ST_3DExtent
一個返回包含多個geometry對象的3D bounding box的聚集函數
8.Find_SRID
該函數的用法是find_srid(a_db_schema, a_table, a_column),函數的返回值一個指定列的整型SRID值,該函數實際上是通過查詢GEOMETRY_COLUMNS 表得到的。
9.ST_Mem_Size
返回一個幾何對象占用的空間(以byte字節為單位)
10.ST_Point_Inside_Circle、
返回一個點是否在一個Circle對象內,Circle定義語法是中心點的坐標和半徑
十四、特殊函數
1.PostGIS_AddBBox
給一個幾何對象添加bounding box
2.PostGIS_DropBBox
刪除一個geometry類型對象的bounding box 緩存
3.PostGIS_HasBBox
如果該幾何對象的bounding box已被緩存,則返回TRUE,否則返回FALSE.
十五、雜項
角度轉弧度 radians()
弧度轉角度 degrees()
兩個點的角度 ST_Azimuth ,返回的是弧度
select degrees(ST_Azimuth(st_geomfromewkt(‘point(120 30)’),st_geomfromewkt(‘point(121 30)’)));
從一個點延某個方向前進一定的距離 ST_Project(A,B)
總結
- 上一篇: gimp的学习资源
- 下一篇: java 数据库工资管理系统设计_数据库