MariaDB ST_InteriorRingN() 函数的基础用法与实例
MariaDB ST_InteriorRingN()
函数用来返回一个多边形内部的第 N 个环。
发布于
MariaDB ST_InteriorRingN()
函数用来返回一个多边形内部的第 N 个环。该函数常用于处理有内环的复杂多边形对象。
语法
MairaDB ST_InteriorRingN()
函数的语法如下:
ST_InteriorRingN(poly, n)
poly
: 必选参数,是一个 POLYGON 类型的多边形对象。n
: 必选参数,是一个从 1 开始的整数,表示要返回的内环的序号。
如果 poly
为 NULL,或者 n
超出了内环的范围,则函数返回 NULL。如果 poly
没有内环,则对于任何 n
值,函数都返回 NULL。如果函数执行成功,它将返回一个 LINESTRING
类型的对象,代表第 n
个内环。
实例
获取多边形第一个内环
此实例演示如何获取一个多边形的第一个内环。
DROP TABLE IF EXISTS test_table;
CREATE TABLE test_table (id INT PRIMARY KEY, poly POLYGON);
INSERT INTO test_table (id, poly) VALUES
(1, ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,1 3,3 3,3 1,1 1),(6 6,6 8,8 8,8 6,6 6))'));
SELECT id, ST_AsText(ST_InteriorRingN(poly, 1)) FROM test_table;
以下是该语句的输出:
+----+--------------------------------------+
| id | ST_AsText(ST_InteriorRingN(poly, 1)) |
+----+--------------------------------------+
| 1 | LINESTRING(1 1,1 3,3 3,3 1,1 1) |
+----+--------------------------------------+
获取多边形第二个内环
此实例演示如何获取一个多边形的第二个内环。
DROP TABLE IF EXISTS test_table;
CREATE TABLE test_table (id INT PRIMARY KEY, poly POLYGON);
INSERT INTO test_table (id, poly) VALUES
(1, ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,1 3,3 3,3 1,1 1),(6 6,6 8,8 8,8 6,6 6))'));
SELECT id, ST_AsText(ST_InteriorRingN(poly, 2)) FROM test_table;
以下是该语句的输出:
+----+--------------------------------------+
| id | ST_AsText(ST_InteriorRingN(poly, 2)) |
+----+--------------------------------------+
| 1 | LINESTRING(6 6,6 8,8 8,8 6,6 6) |
+----+--------------------------------------+
获取没有内环的多边形内环
此实例演示当一个多边形没有内环时,ST_InteriorRingN()
函数的返回值。
DROP TABLE IF EXISTS test_table;
CREATE TABLE test_table (id INT PRIMARY KEY, poly POLYGON);
INSERT INTO test_table (id, poly) VALUES
(1, ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0))'));
SELECT id, ST_AsText(ST_InteriorRingN(poly, 1)) FROM test_table;
以下是该语句的输出:
+----+--------------------------------------+
| id | ST_AsText(ST_InteriorRingN(poly, 1)) |
+----+--------------------------------------+
| 1 | NULL |
+----+--------------------------------------+
获取一个无效多边形的内环
此实例演示当输入一个无效的多边形时,ST_InteriorRingN()
函数的返回值。
DROP TABLE IF EXISTS test_table;
CREATE TABLE test_table (id INT PRIMARY KEY, poly POLYGON);
INSERT INTO test_table (id, poly) VALUES
(1, ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,1 3,3 3,3 1),(6 6,6 8,8 8,8 6,6 6))'));
SELECT id, ST_AsText(ST_InteriorRingN(poly, 2)) FROM test_table;
以下是该语句的输出:
+----+--------------------------------------+
| id | ST_AsText(ST_InteriorRingN(poly, 2)) |
+----+--------------------------------------+
| 1 | NULL |
+----+--------------------------------------+
获取一个几何集合对象的内环
此实例演示当输入一个非多边形对象时,ST_InteriorRingN()
函数的返回值。
DROP TABLE IF EXISTS test_table;
CREATE TABLE test_table (id INT PRIMARY KEY, gc GEOMETRYCOLLECTION);
INSERT INTO test_table (id, gc) VALUES
(1, ST_GeomFromText('GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,2 2))'));
SELECT id, ST_AsText(ST_InteriorRingN(gc, 1)) FROM test_table;
以下是该语句的输出:
+----+------------------------------------+
| id | ST_AsText(ST_InteriorRingN(gc, 1)) |
+----+------------------------------------+
| 1 | NULL |
+----+------------------------------------+
相关函数
以下是几个与 MairaDB ST_InteriorRingN()
相关的几个函数:
- MariaDB
ST_NumInteriorRings()
函数用来返回一个多边形对象中内环的数量。 - MariaDB
ST_ExteriorRing()
函数用来返回一个多边形对象的外环。 - MariaDB
ST_IsClosed()
函数用来检查一个线串是否闭合。
结论
MariaDB ST_InteriorRingN()
函数是一个非常有用的函数,它允许我们从一个复杂的多边形对象中提取出指定序号的内环。通过本文的实例,我们更好地理解了如何使用这个函数,以及它的作用和用法。需要注意的是,在使用该函数时,需要确保输入的是一个有效的多边形对象,否则可能会导致函数返回 NULL 或者出现错误。