MariaDB ST_BOUNDARY() 函数的基础用法与实例
MariaDB ST_Boundary()
函数用来获取一个几何图形的边界。
发布于
MariaDB ST_Boundary()
函数用来获取一个几何图形的边界。对于点类型的几何图形,返回值为空,因为点没有边界。对于线状几何图形,返回值是其端点构成的多点。对于面状几何图形,返回值是其环的边界构成的线。
语法
MairaDB ST_Boundary()
函数的语法如下:
ST_Boundary(g)
g
:要获取边界的几何图形。
该函数会返回一个表示输入几何图形边界的几何图形。
实例
获取一个点的边界
这个实例将展示获取一个点的边界会返回 GEOMETRYCOLLECTION EMPTY
。
DROP TABLE IF EXISTS point_table;
CREATE TABLE point_table (id INT PRIMARY KEY, pt POINT NOT NULL);
INSERT INTO point_table VALUES (1, POINT(1, 2));
SELECT ST_AsText(ST_Boundary(pt)) FROM point_table;
以下是该语句的输出:
+----------------------------+
| ST_AsText(ST_Boundary(pt)) |
+----------------------------+
| GEOMETRYCOLLECTION EMPTY |
+----------------------------+
获取一条线的边界
这个实例将展示如何获取一条线的边界。
SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(0 0, 1 1, 2 2)')));
以下是该语句的输出:
+----------------------------------------------------------------------+
| ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(0 0, 1 1, 2 2)'))) |
+----------------------------------------------------------------------+
| MULTIPOINT(0 0,2 2) |
+----------------------------------------------------------------------+
线的边界是其端点构成的多点。
获取一个多边形的边界
这个实例将展示如何获取一个多边形的边界。
SET @p = ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))');
SELECT ST_AsText(ST_Boundary(@p));
以下是该语句的输出:
+---------------------------------+
| ST_AsText(ST_Boundary(@p)) |
+---------------------------------+
| LINESTRING(0 0,1 0,1 1,0 1,0 0) |
+---------------------------------+
多边形的边界是其环的边界构成的线。
获取一个多线形的边界
这个实例将展示如何获取一个多线形的边界。
SET @ml = ST_GeomFromText('MULTILINESTRING((0 0, 1 1), (2 2, 3 3))');
SELECT ST_AsText(ST_Boundary(@ml));
以下是该语句的输出:
+-----------------------------+
| ST_AsText(ST_Boundary(@ml)) |
+-----------------------------+
| MULTIPOINT(0 0,1 1,2 2,3 3) |
+-----------------------------+
多线形的边界是其所有线段端点构成的多点。
获取一个几何集合的边界
这个实例将展示如何获取一个几何集合的边界。
SET @gc = ST_GeomFromText('GEOMETRYCOLLECTION(POINT(1 1), LINESTRING(2 2, 3 3))');
DROP TABLE IF EXISTS gcoll_table;
CREATE TABLE gcoll_table (id INT PRIMARY KEY, gc GEOMETRYCOLLECTION NOT NULL);
INSERT INTO gcoll_table VALUES (1, @gc);
SELECT ST_AsText(ST_Boundary(gc)) FROM gcoll_table;
以下是该语句的输出:
+----------------------------+
| ST_AsText(ST_Boundary(gc)) |
+----------------------------+
| MULTIPOINT(2 2,3 3) |
+----------------------------+
几何集合的边界是其中非点几何图形的边界组成的几何图形。
相关函数
以下是几个与 MairaDB ST_Boundary()
相关的几个函数:
- MariaDB
ST_Envelope()
函数用来获取一个几何图形的最小矩形边界。 - MariaDB
ST_IsClosed()
函数用来检测一个线型几何图形是否闭合。 - MariaDB
ST_StartPoint()
函数用来获取一条线的起点。 - MariaDB
ST_EndPoint()
函数用来获取一条线的终点。
结论
MariaDB ST_Boundary()
函数提供了一种方便获取几何图形边界的方法。通过本文介绍的各种示例,您可以更好地理解和使用这个功能强大的函数。无论是获取点、线、面还是集合类型几何的边界,都可以使用这个函数。