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)

你可能感兴趣的:(GIS)