本文介绍时空函数中的访问函数。
ST_Centroid
调用ST_Centroid
函数返回指定Geometry对象的几何中心。
语法
geometry ST_Centroid(geometry g);
参数
参数 | 描述 |
---|---|
g | 指定的Geometry对象。 |
说明 如果Geometry对象是一个空的几何体,则返回对应的空几何体。
示例
- 示例一:
返回结果如下:SELECT ST_AsText(ST_Centroid(ST_Collect(ST_MakePoint(1,1),ST_MakePoint(-1,-1)))) AS astext;
+-------------+ | astext | +-------------+ | POINT (0 0) | +-------------+
- 示例二:
返回结果如下:SELECT ST_AsText(ST_Centroid(ST_GeomFromText('LINESTRING(0 0,0 1,1 2)'))) AS astext;
+--------------------------------+ | astext | +--------------------------------+ | POINT (0.2928932188134525 | | 1.085786437626905) | +--------------------------------+
ST_EndPoint
调用ST_EndPoint
函数返回指定LineString对象的最后一个点。
语法
geometry ST_EndPoint(geometry g);
参数
参数 | 描述 |
---|---|
g | 指定的Geometry对象。 |
说明 如果Geometry对象不是LineString类型,会返回NULL。
示例
SELECT ST_AsText(ST_EndPoint(ST_GEOMFROMTEXT('LINESTRING(1 1, 2 2, 3 3)'))) AS endpoint;
返回结果如下:+-------------+
| endpoint |
+-------------+
| POINT (3 3) |
+-------------+
ST_NPoints
调用ST_NPoints
函数返回指定Geometry对象中顶点的个数,适用于任何Geometry对象。
语法
int ST_NPoints(geometry g);
参数
参数 | 描述 |
---|---|
g | 指定的Geometry对象。 |
示例
SELECT ST_NPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)')) AS npoints;
返回结果如下:+---------+
| npoints |
+---------+
| 4 |
+---------+
ST_StartPoint
调用ST_StartPoint
函数返回指定LineString类型的起点。
语法
geometry ST_StartPoint(geometry g);
参数
参数 | 描述 |
---|---|
g | 指定的Geometry对象。 |
说明 如果Geometry对象不是LineString类型,会返回NULL。
示例
SELECT ST_AsText(ST_StartPoint(ST_GEOMFROMTEXT('LINESTRING(0 1, 0 2)'))) AS startpoint;
返回结果如下:+-------------+
| startpoint |
+-------------+
| POINT (0 1) |
+-------------+
ST_X
调用ST_X
函数返回指定Point类型的X坐标值。
语法
double ST_X(geometry a_point);
参数
参数 | 描述 |
---|---|
a_point | 指定的Point类型。 |
说明 输入Geometry对象必须是Point类型。如果输入的Geometry对象为EMPTY或者输入值为NULL会返回NULL。
示例
SELECT ST_X(ST_MakePoint(1.0, 2.0)) AS x;
返回结果如下:+---+
| x |
+---+
| 1 |
+---+
ST_XMax
调用ST_XMax
函数返回指定Geometry对象边界框X坐标的最大值。
语法
double ST_XMax(geometry g);
参数
参数 | 描述 |
---|---|
g | 指定的Geometry对象。 |
说明
- Geometry对象支持Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon和GeometryCollection类型。
- 如果Geometry对象为EMPTY会返回-1。
示例
SELECT ST_XMax(ST_GeomFromText('LINESTRING(1 3,5 6)')) AS xmax;
返回结果如下:+------+
| xmax |
+------+
| 5 |
+------+
ST_XMin
调用ST_XMin
函数返回指定Geometry对象边界框X坐标的最小值。
语法
double ST_XMin(geometry g);
参数
参数 | 描述 |
---|---|
g | 指定的Geometry对象。 |
说明
- Geometry对象支持Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon和GeometryCollection类型。
- 如果Geometry对象为EMPTY会返回0。
示例
SELECT ST_XMin(ST_GeomFromText('LINESTRING(1 3,5 6)')) AS xmin;
返回结果如下:+------+
| xmin |
+------+
| 1 |
+------+
ST_Y
调用ST_Y
函数返回指定Point类型的Y坐标值。
语法
double ST_Y(geometry a_point);
参数
参数 | 描述 |
---|---|
a_point | 指定的Point对象。 |
说明 Geometry对象必须是Point类型。如果输入的Geometry对象为EMPTY或者输入值为NULL会返回NULL。
示例
SELECT ST_Y(ST_MakePoint(1.0, 2.0)) AS y;
返回结果如下:+---+
| y |
+---+
| 2 |
+---+
ST_YMax
调用ST_YMax
函数返回指定Geometry对象边界框Y坐标的最大值。
语法
double ST_YMax(geometry g);
参数
参数 | 描述 |
---|---|
g | 指定的Geometry对象。 |
说明
- Geometry对象支持Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon和GeometryCollection类型。
- 如果Geometry对象为EMPTY会返回-1。
示例
SELECT ST_YMax(ST_GeomFromText('LINESTRING(1 3,5 6)')) AS ymax;
返回结果如下:+------+
| ymax |
+------+
| 6 |
+------+
ST_YMin
调用ST_YMin
函数返回指定Geometry对象边界框Y坐标的最小值。
语法
double ST_YMin(geometry g);
参数
参数 | 描述 |
---|---|
g | 指定的Geometry对象。 |
说明
- Geometry对象支持Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon和GeometryCollection类型。
- 如果Geometry对象为EMPTY会返回0。
示例
SELECT ST_YMin(ST_GeomFromText('LINESTRING(1 3,5 6)')) AS ymin;
返回结果如下:+------+
| ymin |
+------+
| 3 |
+------+