访问器函数可用于从不同的字符串中获取BIGINT、DOUBLE或GEOMETRY类型的值。
ST_XMax:返回g1的X坐标上的最大值。
ST_YMax:返回g1的Y坐标上的最大值。
ST_XMin:返回g1的X坐标上的最小值。
ST_YMin:返回g1的Y坐标上的最小值。
ST_Distance:返回g1、g2之间的直线距离。
ST_Distance_Sphere:返回g1、g2之间的球面距离,可以指定球的半径Radius,Radius默认值为6370986米。
ST_Area:返回g1的欧几里得2维空间值。
ST_Centroid:返回g1的中心点对象。
ST_ConvexHull:返回g1的中最小化的凸Geometry对象。
ST_CoordDim:返回g1的中坐标尺寸。
ST_Dimension:返回g1中固有的Dimension,肯定小于或者等于coordinate dimension。
ST_IsClosed:如果LineString或者Muti-LineString的start和end是一致的,返回1(1为True,0为False)。
ST_IsEmpty:如果g1是一个空的geometrycollection,或polygon,point,返回0(0为True,1为False)。
ST_IsValid:返回g1是否为合法的格式,1为True。
Geometry_invalid_reason:返回g1是不是合法的格式的原因。
ST_Length:如果输入是LineString或者Multi-LineString的长度(计算是基于Euclidean),返回g1直线长度;如果输入是GEOGRAPHY类型的格式,返回的是球面上的Greate-circle的长度。
Line_locate_point:返回一个float值,标识的是给定点在线上的比率。
Line_interpolate_point:给定一个比率和线,返回这个比率的点。
Line_interpolate_points:给定一个比率和线,返回按照这个比率分割的所有点。
ST_NumInteriorRing:返回Polygon的内部环的集合的基数。
ST_InteriorRings:返回在指定几何体中找到的所有内部环的几何体数组,如果多边形没有内部环,则返回空数组。如果指定的几何体为空,则返回null。如果指定的几何体不是多边形,则会引发错误。
ST_NumGeometries:以整数形式返回集合中的几何体数。如果几何体是几何体的集合(例如GEOMETRYCOLLECTION或MULTI*对象),则返回几何体的数量。单个几何体返回1;空几何体返回0。对象中的空几何体计为一个几何体。
ST_GeometryN:返回位于指定整数索引的 GEOMETRY元素(作为GEOMETRY数据类型)。索引从1开始。如果指定的几何体是几何体集合(例如,GEOMETRYCOLLECTION或MULTI*对象),则将返回指定索引处的几何体。如果指定的索引小于1或大于集合中的元素总数,则返回null。
ST_PointN:返回指定整数索引处的指定行字符串顶点(作为点几何体数据类型)。索引从1开始。如果给定索引小于1或大于集合中的元素总数,则返回null。
ST_Geometries:返回指定集合中的几何体数组。如果指定的几何体不是多几何体,则返回一个元素数组。如果指定的几何体为空,则返回null。
ST_InteriorRingN:返回指定索引处的内部环元素(索引从1开始)。如果给定索引小于1或大于指定几何体中的内部环总数,则返回null。如果指定的几何体不是多边形,则引发错误。
ST_NumPoints:返回几何体中的点数。
ST_IsRing:当且仅当Line类型闭合且简单时返回1(1为True,0为False)。
ST_StartPoint:返回Line GEOMETRY数据类型中Point GEOMETRY数据类型的第一个点。
Simplify_geometry:使用Ramer-Douglas-Peucker算法返回的GEOMETRY数据类型是指定GEOMETRY的简化版本。避免创建无效的派生几何体(特别是多边形)。
ST_EndPoint:返回Line GEOMETRY数据类型中Point GEOMETRY数据类型的最后一个点。
ST_Points:从指定的线串几何体对象返回点数组。
ST_X:返回点的X坐标。
ST_Y:返回点的Y坐标。
ST_GeometryType:以VARCHAR形式返回几何体的类型。
ST_XMax
ST_XMax(g1)
命令说明:返回g1的X坐标上的最大值。
返回值类型:DOUBLE。
示例:
SELECT ST_XMax(ST_GeomFromText('POINT (1.5 2.5)'));
返回结果:
+----------------------------------------------+ | ST_XMax(ST_GeomFromText('POINT (1.5 2.5)')) | +----------------------------------------------+ | 1.5 |
ST_YMax
ST_YMax(g1)
命令说明:返回g1的Y坐标上的最大值。
返回值类型:DOUBLE。
示例:
SELECT ST_YMax(ST_GeomFromText('POINT (1.5 2.5)'));
返回结果:
+----------------------------------------------+ | ST_YMax(ST_GeomFromText('POINT (1.5 2.5)')) | +----------------------------------------------+ | 2.5 |
ST_XMin
ST_XMin(g1)
命令说明:返回g1的X坐标上的最小值。
返回值类型:DOUBLE。
示例:
SELECT ST_XMin(ST_GeomFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)'));
返回结果:
+-------------------------------------------------------------+ | ST_XMin(ST_GeomFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)')) | +-------------------------------------------------------------+ | 1.0 |
ST_YMin
ST_YMin(g1)
命令说明:返回g1的Y坐标上的最小值。
返回值类型:DOUBLE。
示例:
SELECT ST_YMin(ST_GeomFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)'));
返回结果:
+-------------------------------------------------------------+ | ST_YMin(ST_GeomFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)')) | +-------------------------------------------------------------+ | 2.0 |
ST_Distance
ST_Distance(g1, g2)
命令说明:返回g1、g2之间的直线距离。
返回值类型:DOUBLE。
示例:
SELECT ST_Distance(ST_Point(1,1), ST_Point(2,2));
返回结果:
+-------------------------------------------+ | ST_Distance(ST_Point(1,1), ST_Point(2,2)) | +-------------------------------------------+ | 1.4142135623730951 |
ST_Distance_Sphere
ST_Distance_Sphere(g1, g2 [, radius])
命令说明:返回g1、g2之间的球面距离,可以指定球的半径Radius,Radius默认值为6370986米。
返回值类型:DOUBLE。
示例:
SELECT ST_Distance_Sphere(point(1,1), point(2,2));
返回结果:
+--------------------------------------------+ | ST_Distance_Sphere(point(1,1), point(2,2)) | +--------------------------------------------+ | 157225.08654191086 |
ST_Area
ST_Area(g1)
命令说明:返回g1的欧几里得2维空间值。
返回值类型:DOUBLE。
示例:
SELECT ST_Area(ST_GeometryFromText('POLYGON ((2 2, 2 6, 6 6, 6 2))'));
返回结果:
+------------------------------------------------------------------------+ | ST_Area(ST_GeometryFromText('POLYGON ((2 2, 2 6, 6 6, 6 2))')) | +------------------------------------------------------------------------+ | 16.0 |
ST_Centroid
ST_Centroid(g1)
命令说明:返回g1的中心点对象。
返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码,使用ST_AsText函数可以将返回结果转换为可识别的文本。
示例:
SELECT ST_AsText(ST_Centroid(ST_GeometryFromText('POINT (3 5)')));
返回结果:
+-------------------------------------------------------------------+ | ST_AsText(ST_Centroid(ST_GeometryFromText('POINT (3 5)'))) | +-------------------------------------------------------------------+ | POINT (3 5) |
ST_ConvexHull
ST_ConvexHull(g1)
命令说明:返回g1的中最小化的凸Geometry对象。
返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码,使用ST_AsText函数可以将返回结果转换为可识别的文本。
示例:
SELECT ST_AsText(ST_ConvexHull(ST_GeometryFromText('LINESTRING (20 20, 30 30)')));
返回结果:
+--------------------------------------------------------------------------------+ | ST_AsText(ST_ConvexHull(ST_GeometryFromText('LINESTRING (20 20, 30 30)'))) | +--------------------------------------------------------------------------------+ | POLYGON ((1 1, 5 1, 6 6, 1 1)) |
ST_CoordDim
ST_CoordDim(g1)
命令说明:返回g1的中坐标尺寸。
返回值类型:TINYINT。
示例:
SELECT ST_CoordDim(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))'));
返回结果:
+--------------------------------------------------------------------------------+ | ST_CoordDim(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))')) | +--------------------------------------------------------------------------------+ | 2 |
ST_Dimension
ST_Dimension(g1)
命令说明:返回g1中固有的Dimension,肯定小于或者等于Coordinate Dimension。
返回值类型:TINYINT。
示例:
SELECT ST_Dimension(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))'));
返回结果:
+--------------------------------------------------------------------------------+ | ST_Dimension(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))')) | +--------------------------------------------------------------------------------+ | 2 |
ST_IsClosed
ST_IsClosed(g1)
命令说明:如果LineString或者Muti-LineString的start和end是一致的,返回1(1为True,0为False)。
返回值类型:INT。
示例:
SELECT ST_IsClosed(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3, 1 1)'));
返回结果:
+-------------------------------------------------------------------------------+ | ST_IsClosed(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3, 1 1)')) | +-------------------------------------------------------------------------------+ | 1 |
ST_IsEmpty
ST_IsEmpty(g1)
命令说明:如果g1是一个空的GeometryCollection、Polygon或Point,返回0(0为True,1为False)。
返回值类型:INT。
示例:
SELECT ST_IsEmpty(ST_GeometryFromText('POINT (1.5 2.5)'));
返回结果:
+-------------------------------------------------------------+ | ST_IsEmpty(ST_GeometryFromText('POINT (1.5 2.5)')) | +-------------------------------------------------------------+ | 0 |
ST_IsValid
ST_IsValid(g1)
命令说明:返回g1是否为合法的格式,1为True。
返回值类型:INT。
示例:
SELECT ST_IsValid(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3, 1 1)'));
返回结果:
+------------------------------------------------------------------------+ | ST_IsValid(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3, 1 1)')) | +-------------------------------------------------------------------- ---+ | 1 |
Geometry_invalid_reason
Geometry_invalid_reason(g1)
命令说明:返回g1是不是合法的格式的原因。
返回值类型:VARCHAR。
示例:
SELECT Geometry_invalid_reason(ST_GeometryFromText('POLYGON ((0 0, 1 1, 0 1, 1 0, 0 0))'));
返回结果:
+----------------------------------------------------------------------------------------+ | Geometry_invalid_reason(ST_GeometryFromText('POLYGON ((0 0, 1 1, 0 1, 1 0, 0 0))')) | +----------------------------------------------------------------------------------------+ | Intersecting or overlapping segments at or near (1.0 0.0) and (1.0 1.0) |
ST_Length
ST_Length(g1)
命令说明:如果输入是LineString或者Multi-LineString的长度(计算是基于Euclidean),返回g1直线长度;如果输入是GEOGRAPHY类型的格式,返回的是球面上的Greate-circle的长度。
返回值类型:DOUBLE。
示例:
SELECT ST_Length(ST_GeometryFromText('LINESTRING (1 1, 1 2)'));
返回结果:
+----------------------------------------------------------+ | ST_Length(ST_GeometryFromText('LINESTRING (1 1, 1 2)')) | +----------------------------------------------------------+ | 1.0 |
Line_locate_point
Line_locate_point(g1, g2)
命令说明:返回一个float值,表示给定点在线上的比率。
返回值类型:DOUBLE。
示例:
SELECT Line_locate_point(ST_GeometryFromText('LINESTRING (0 0, 0 1)'), ST_Point(0, 0.2));
返回结果:
+-------------------------------------------------------------------------------------+ | Line_locate_point(ST_GeometryFromText('LINESTRING (0 0, 0 1)'), ST_Point(0, 0.2)) | +-------------------------------------------------------------------------------------+ | 0.2 |
Line_interpolate_point
Line_interpolate_point(g1, d)
命令说明:给定一个比率和线,返回这个比率的点。
返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码,使用ST_AsText函数可以将返回结果转换为可识别的文本。
示例:
SELECT ST_AsText(Line_interpolate_point(ST_GeometryFromText('LINESTRING (0 0, 2 2)'), 0.5));
返回结果:
+----------------------------------------------------------------------------------------+ | ST_AsText(Line_interpolate_point(ST_GeometryFromText('LINESTRING (0 0, 2 2)'), 0.5)) | +----------------------------------------------------------------------------------------+ | POINT (1 1) |
Line_interpolate_points
Line_interpolate_points(g1, d)
命令说明:给定一个比率和线,返回按照这个比率分割的所有点。
返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码,使用transform函数将Lambda表达式应用到数组的每个元素。
示例:
SELECT transform(Line_interpolate_points(ST_GeometryFromText('LINESTRING (0 0, 1 1, 10 10)'), 0.4), x -> ST_AsText(x));
返回结果:
+-----------------------------------------------------------------------------------------------------------------+ | transform(Line_interpolate_points(ST_GeometryFromText('LINESTRING (0 0, 1 1, 10 10)'), 0.4), x -> ST_AsText(x)) | +-----------------------------------------------------------------------------------------------------------------+ | ["POINT (4.000000000000001 4.000000000000001)","POINT (8 8)"] |
ST_NumInteriorRing
ST_NumInteriorRing(g1)
命令说明:返回Polygon的内部环的集合的基数。
返回值类型:BIGINT。
示例:
SELECT ST_NumInteriorRing(ST_GeometryFromText('POLYGON ((0 0, 0 5, 5 5, 5 0, 0 0))'));
返回结果:
+-------------------------------------------------------------------------------------+ | ST_NumInteriorRing(ST_GeometryFromText('POLYGON ((0 0, 0 5, 5 5, 5 0, 0 0))')) | +-------------------------------------------------------------------------------------+ | 0 |
ST_InteriorRings
ST_InteriorRings(g1)
命令说明:返回在指定几何体中找到的所有内部环的几何体数组,如果多边形没有内部环,则返回空数组。如果指定的几何体为空,则返回 null。如果指定的几何体不是多边形,则会引发错误。
返回值类型:Array[GEOMETRY[GEOMETRY]。
示例:
SELECT ST_InteriorRings(ST_GeometryFromText('POLYGON EMPTY'));
返回结果:
+----------------------------------------------------------------------+ | ST_InteriorRings(ST_GeometryFromText('POLYGON EMPTY')) | +----------------------------------------------------------------------+ | null |
ST_NumGeometries
ST_NumGeometries(g1)
命令说明:以整数形式返回集合中的几何体数。如果几何体是几何体的集合 (例如GEOMETRYCOLLECTION或MULTI* 对象),则返回几何体的数量。单个几何体返回1;空几何体返回0。对象中的空几何体计为一个几何体。
返回值类型:INT。
示例:
SELECT ST_NumGeometries(ST_GeometryFromText('POINT (1 2)'));
返回结果:
+----------------------------------------------------------------------+ | ST_NumGeometries(ST_GeometryFromText('POINT (1 2)')) | +----------------------------------------------------------------------+ | 1 |
ST_GeometryN
ST_GeometryN(g, i)
命令说明:返回位于指定整数索引的GEOMETRY元素(作为GEOMETRY数据类型)。索引从1开始。如果指定的几何体是几何体集合(例如,GEOMETRYCOLLECTION或MULTI*对象),则返回指定索引处的几何体。如果指定的索引小于1或大于集合中的元素总数,则返回null。
返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码,使用ST_AsText函数可以将返回结果转换为可识别的文本。
示例:
SELECT ST_ASText(ST_GeometryN(ST_GeometryFromText('POINT (1 2)'), 1));
返回结果:
+---------------------------------------------------------------------------------+ | ST_ASText(ST_GeometryN(ST_GeometryFromText('POINT (1 2)'), 1)) | +---------------------------------------------------------------------------------+ | POINT (1 2) |
ST_PointN
ST_PointN(g, i)
命令说明:返回指定整数索引处的指定行字符串顶点(作为点几何体数据类型)。索引从1开始。如果给定索引小于1或大于集合中的元素总数,则返回null。
返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码,使用ST_AsText函数可以将返回结果转换为可识别的文本。
示例:
SELECT ST_ASText(ST_PointN(ST_GeometryFromText('LINESTRING(1 2, 3 4, 5 6, 7 8)'), 3));
返回结果:
+---------------------------------------------------------------------------------------+ | ST_ASText(ST_PointN(ST_GeometryFromText('LINESTRING(1 2, 3 4, 5 6, 7 8)'), 3)) | +---------------------------------------------------------------------------------------+ | POINT (5 6) |
ST_Geometries
ST_Geometries(g)
命令说明:返回指定集合中的几何体数组。如果指定的几何体不是多几何体,则返回一个元素数组。如果指定的几何体为空,则返回null。
返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码,使用transform函数将Lambda表达式应用到数组的每个元素。
示例:
SELECT transform(ST_Geometries(ST_GeometryFromText('POINT (1 5)')), x -> ST_ASText(x));
返回结果:
+---------------------------------------------------------------------------------------+ | transform(ST_Geometries(ST_GeometryFromText('POINT (1 5)')), x -> ST_ASText(x)) | +---------------------------------------------------------------------------------------+ | POINT (1 5) |
ST_InteriorRingN
ST_InteriorRingN(g, d)
命令说明:返回指定索引处的内部环元素(索引从1开始)。如果给定索引小于1或大于指定几何体中的内部环总数,则返回null。如果指定的几何体不是多边形,则引发错误。
返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码,使用ST_AsText函数可以将返回结果转换为可识别的文本。
示例:
SELECT ST_ASText(ST_InteriorRingN(ST_GeometryFromText('POLYGON ((0 0, 0 3, 3 3, 3 0, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1))'), 1));
返回结果:
+-----------------------------------------------------------------------------------------------------------------------------+ | ST_ASText(ST_InteriorRingN(ST_GeometryFromText('POLYGON ((0 0, 0 3, 3 3, 3 0, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1))'), 1)) | +-----------------------------------------------------------------------------------------------------------------------------+ | LINESTRING (1 1, 1 2, 2 2, 2 1, 1 1) |
ST_NumPoints
ST_NumPoints(g)
命令说明:返回几何体中的点数(类型为BIGINT)。
返回值类型:BIGINT。
示例:
SELECT ST_NumPoints(ST_GeometryFromText('POINT (1 2)'));
返回结果:
+-------------------------------------------------------------------------+ | ST_NumPoints(ST_GeometryFromText('POINT (1 2)')) | +-------------------------------------------------------------------------+ | 1 |
ST_IsRing
ST_IsRing(g)
命令说明:当且仅当line类型闭合且简单时返回1(1为True,0为False)。
返回值类型:INT。
示例:
SELECT ST_IsRing(ST_GeometryFromText('LINESTRING (1 1, 1 3, 2 3, 2 1, 1 1)'));
返回结果:
+---------------------------------------------------------------------------------+ | ST_IsRing(ST_GeometryFromText('LINESTRING (1 1, 1 3, 2 3, 2 1, 1 1)')) | +---------------------------------------------------------------------------------+ | 1 |
ST_StartPoint
ST_StartPoint(g)
命令说明:返回Line Geometry数据类型中Point Geometry数据类型的第一个点。
返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码,使用ST_AsText函数可以将返回结果转换为可识别的文本。
示例:
SELECT ST_AsText(ST_StartPoint(ST_GeometryFromText('LINESTRING (8 4, 4 8, 5 6)')));
返回结果:
+-------------------------------------------------------------------------------------+ | ST_AsText(ST_StartPoint(ST_GeometryFromText('LINESTRING (8 4, 4 8, 5 6)'))) | +-------------------------------------------------------------------------------------+ | POINT (8 4) |
Simplify_geometry
Simplify_geometry(g, d)
命令说明:使用Ramer-Douglas-Peucker算法返回的GEOMETRY数据类型是指定GEOMETRY的简化版本。避免创建无效的派生几何体(特别是多边形)。
返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码,使用ST_AsText函数可以将返回结果转换为可识别的文本。
示例:
SELECT ST_AsText(Simplify_geometry(ST_GeometryFromText('POLYGON ((1 0, 2 1, 3 1, 3 1, 4 1, 1 0))'), 1.5));
返回结果:
+-----------------------------------------------------------------------------------------------------------+ | ST_AsText(Simplify_geometry(ST_GeometryFromText('POLYGON ((1 0, 2 1, 3 1, 3 1, 4 1, 1 0))'), 1.5)) | +-----------------------------------------------------------------------------------------------------------+ | POLYGON ((1 0, 4 1, 2 1, 1 0))) |
ST_EndPoint
ST_EndPoint(g)
命令说明:返回Line Geometry数据类型中Point Geometry数据类型的最后一个点。
返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码,使用ST_AsText函数可以将返回结果转换为可识别的文本。
示例:
SELECT ST_AsText(ST_EndPoint(ST_GeometryFromText('LINESTRING (8 4, 4 8, 5 6)')));
返回结果:
+-----------------------------------------------------------------------------------+ | ST_AsText(ST_EndPoint(ST_GeometryFromText('LINESTRING (8 4, 4 8, 5 6)'))) | +-----------------------------------------------------------------------------------+ | POINT (5 6) |
ST_Points
ST_Points(g)
命令说明:从指定的线串几何体对象返回点数组。
返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码,使用transform函数将Lambda表达式应用到数组的每个元素。
示例:
SELECT transform(ST_Points(ST_GeometryFromText('POINT (0 0)')), x -> ST_AsText(x));
返回结果:
+-----------------------------------------------------------------------------------+ | transform(ST_Points(ST_GeometryFromText('POINT (0 0)')), x -> ST_AsText(x)) | +-----------------------------------------------------------------------------------+ | ["POINT (0 0)"] |
ST_X
ST_X(g)
命令说明:返回点的X坐标。
返回值类型:DOUBLE。
示例:
SELECT ST_X(ST_GeometryFromText('POINT (1 2)'));
返回结果:
+------------------------------------------------+ |ST_X(ST_GeometryFromText('POINT (1 2)')) | +------------------------------------------------+ | 1.0 |
ST_Y
ST_Y(g)
命令说明:返回点的Y坐标。
返回值类型:DOUBLE。
示例:
SELECT ST_Y(ST_GeometryFromText('POINT (1 2)'));
返回结果:
+------------------------------------------------+ |ST_Y(ST_GeometryFromText('POINT (1 2)')) | +------------------------------------------------+ | 2.0 |
ST_GeometryType
ST_GeometryType(g1)
命令说明:返回几何体的类型。
返回值类型:VARCHAR。
示例:
SELECT ST_GeometryType(ST_Point(1, 4));
返回结果:
+---------------------------------------+ |ST_GeometryType(ST_Point(1, 4)) | +---------------------------------------+ | ST_Point |