天天看点

POSTGIS函数一、PostGIS 的Geometry/Geography/Box类型二、管理函数三、几何对象创建函数四、几何类型存取函数五、几何类型对象编辑函数六、几何对象输出函数七、几何对象之间运算符八、几何对象空间关系和测量函数九、Using SFCGAL Advanced 2D/3D functions十、几何对象处理函数十一、线性函数参考十二、长事务支持十三、杂函数十四、特殊函数十五、杂项

一、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)

GIS