访问器函数可用于从不同的字符串中获取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的中最小化的凸geomety对象。
  • ST_CoordDim:返回g1的中坐标尺寸。
  • ST_Dimension:返回g1中固有的dimesion,肯定小于或者等于coordinate dimension。
  • ST_IsClosed:如果LineString或者Muti-LineString的start和end是一致的,返回true。
  • ST_IsEmpty:如果g1是一个空的geometrycollection,或polygon,point,返回true。
  • ST_IsValid:g1是不是合法的格式。
  • geometry_invalid_reason:返回g1是不是合法的格式的原因。
  • ST_Length:如果输入是LineString或者Multi-LineString的长度(计算是基于Euclidean); 如果输入是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:返回几何体中的点数(类型为 bigint)。
  • ST_IsRing:当且仅当line类型闭合且简单时返回TRUE(类型Boolean)。
  • ST_StartPoint:当且仅当line类型闭合且简单时返回TRUE(类型Boolean)。
  • simplify_geometry:使用Ramer-Douglas-Peucker算法返回的GEOMETRY数据类型是指定GEOMETRY的简化版本。避免创建无效的派生几何体(特别是多边形)。
  • ST_EndPoint:返回line GEOMETRY数据类型中point GEOMETRY数据类型的最后一个点。
  • ST_Points:从指定的线串几何体对象返回点数组。
  • ST_X:返回点的X坐标 (类型为DOUBLE)。
  • ST_Y:返回点的Y坐标 (类型为DOUBLE)。
  • 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                                   |

ST_YMin

ST_YMin(g1)
  • 命令说明:返回g1的Y坐标上的最小值。
  • 返回值类型: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)')) |
    +-------------------------------------------------------------+
    |                        2                                    |

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查询函数结果将显示乱码。
  • 示例:
    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的中最小化的凸geomety对象。
  • 返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码。
  • 示例:
    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中固有的dimesion,肯定小于或者等于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是一致的,返回true。
  • 返回值类型:BOOLEAN。
  • 示例:
    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)'))           |
    +-------------------------------------------------------------------------------+   |            true                                                               |

ST_IsEmpty

ST_IsEmpty(g1)
  • 命令说明:如果g1是一个空的geometrycollection,或polygon,point,返回true。
  • 返回值类型:BOOLEAN。
  • 示例:
    SELECT ST_IsEmpty(ST_GeometryFromText('POINT (1.5 2.5)'));
    +-------------------------------------------------------------+
    | ST_IsEmpty(ST_GeometryFromText('POINT (1.5 2.5)'))          |
    +-------------------------------------------------------------+   
    |          false                                              |

ST_IsValid

ST_IsValid(g1)
  • 命令说明:g1是不是合法的格式。
  • 返回值类型:BOOLEAN。
  • 示例:
    SELECT ST_IsValid(ST_GeometryFromText('MULTIPOINT (1 2, 3 4)');
    +-------------------------------------------------------------+
    | ST_IsValid(ST_GeometryFromText('MULTIPOINT (1 2, 3 4)')     |
    +-------------------------------------------------------------+   
    |          true                                               | 

geometry_invalid_reason

ST_IsValid(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_IsValid(g1)
  • 命令说明:如果输入是LineString或者Multi-LineString的长度(计算是基于Euclidean); 如果输入是GEOGRAPHY类型的格式,返回的是球面上的greate-circle的长度。
  • 返回值类型:DOUBLE。
  • 示例:
    SELECT ST_Length(ST_GeometryFromText('LINESTRING EMPTY'));
    +------------------------------------------------------+
    | ST_Length(ST_GeometryFromText('LINESTRING EMPTY'))   |
    +------------------------------------------------------+   
    |          0.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查询函数结果将显示乱码。
  • 示例:
    SELECT line_interpolate_point(ST_GeometryFromText('LINESTRING EMPTY'), 0.5);
    +-------------------------------------------------------------------------------------+
    | line_interpolate_point(ST_GeometryFromText('LINESTRING EMPTY'), 0.5)               |
    +-------------------------------------------------------------------------------------+   
    |                                      null                                           | 

line_interpolate_points

line_interpolate_points(g1, d)
  • 命令说明:给定一个比率和线,返回按照这个比率分割的所有点。
  • 返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码。
  • 示例:
    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查询函数结果将显示乱码。
  • 示例:
    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查询函数结果将显示乱码。
  • 示例:
    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查询函数结果将显示乱码。
  • 示例:
    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查询函数结果将显示乱码。
  • 示例:
    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类型闭合且简单时返回TRUE(类型boolean)。
  • 返回值类型:BOOLEAN。
  • 示例:
    SELECT  ST_IsRing(ST_GeometryFromText('LINESTRING (8 4, 4 8)'))           +
    *-------------------------------------------------------------------------+
    |     ST_IsRing(ST_GeometryFromText('LINESTRING (8 4, 4 8)'))             |
    +-------------------------------------------------------------------------+   
    |                 false                                                   |  

ST_StartPoint

ST_StartPoint(g)
  • 命令说明:当且仅当line类型闭合且简单时返回TRUE(类型boolean)。
  • 返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码。
  • 示例:
    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 (5 6)                                                         | 

simplify_geometry

simplify_geometry(g, d)
  • 命令说明:使用Ramer-Douglas-Peucker算法返回的GEOMETRY数据类型是指定GEOMETRY的简化版本。避免创建无效的派生几何体(特别是多边形)。
  • 返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码。
  • 示例:
    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查询函数结果将显示乱码。
  • 示例:
    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)                                                      | 

ST_Points

ST_Points(g)
  • 命令说明:从指定的线串几何体对象返回点数组。
  • 返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码。
  • 示例:
    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))       |
    +-----------------------------------------------------------------------------------+   
    |                  0 0                                                              | 

ST_X

ST_X(g)
  • 命令说明:返回点的X坐标 (类型为double)。
  • 返回值类型: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)。
  • 返回值类型:DOUBLE。
  • 示例:
    SELECT ST_Y(ST_GeometryFromText('POINT (1 2)'))  +
    *------------------------------------------------+
    |ST_Y(ST_GeometryFromText('POINT (1 2)'))        |
    +------------------------------------------------+   
    |                2.0                             | 

ST_GeometryType

ST_Within(g1)
  • 命令说明:以varchar形式返回几何体的类型。
  • 返回值类型:VARCHAR。
  • 示例:
    SELECT ST_GeometryType(ST_Point(1, 4))  +
    *---------------------------------------+
    |ST_GeometryType(ST_Point(1, 4))        |
    +---------------------------------------+   
    |                 false                 |