MariaDB STARTPOINT() 函数的基础用法与实例

MariaDB ST_StartPoint() 函数用来获取一个线串(LINESTRING)的起点。

发布于

MariaDB ST_StartPoint() 函数用来获取一个线串(LINESTRING)的起点。在处理地理空间数据时,该函数非常有用。

语法

MairaDB ST_StartPoint() 函数的语法如下:

ST_StartPoint(linestring)
  • linestring 是一个 LINESTRING 类型的几何对象。
  • 函数返回该线串的起点,返回值的类型为 POINT。

实例

获取单个线串的起点

SELECT ST_AsText(ST_StartPoint(ST_LineStringFromText('LINESTRING(1 2, 3 4, 5 6)'))) result;

以下是该语句的输出:

+------------+
| result     |
+------------+
| POINT(1 2) |
+------------+

结果显示该线串的起点是 POINT(1 2)

从表中获取所有线串的起点

DROP TABLE IF EXISTS lines_table;
CREATE TABLE lines_table (
    id INT PRIMARY KEY AUTO_INCREMENT,
    ln LINESTRING NOT NULL
);

INSERT INTO lines_table (ln) VALUES
    (ST_LineStringFromText('LINESTRING(1 2, 3 4, 5 6)')),
    (ST_LineStringFromText('LINESTRING(7 8, 9 10)')),
    (ST_LineStringFromText('LINESTRING(11 12, 13 14, 15 16)'));

SELECT id, ST_AsText(ST_StartPoint(ln)) AS start_point
FROM lines_table;

以下是该语句的输出:

+----+--------------+
| id | start_point  |
+----+--------------+
|  1 | POINT(1 2)   |
|  2 | POINT(7 8)   |
|  3 | POINT(11 12) |
+----+--------------+

结果显示了表中每条线串的起点。

获取多边形外圈的起点

DROP TABLE IF EXISTS polygons;
CREATE TABLE polygons (
    id INT PRIMARY KEY AUTO_INCREMENT,
    poly POLYGON NOT NULL
);

INSERT INTO polygons (poly) VALUES
    (ST_PolygonFromText('POLYGON((1 1, 3 1, 3 3, 1 3, 1 1))')),
    (ST_PolygonFromText('POLYGON((5 5, 7 5, 7 7, 5 7, 5 5))'));

SELECT id, ST_AsText(ST_StartPoint(ST_ExteriorRing(poly))) AS start_point
FROM polygons;

以下是该语句的输出:

+----+-------------+
| id | start_point |
+----+-------------+
|  1 | POINT(1 1)  |
|  2 | POINT(5 5)  |
+----+-------------+

结果显示了每个多边形外圈的起点。

相关函数

以下是几个与 MairaDB ST_StartPoint() 相关的几个函数:

  • MariaDB ST_EndPoint() 函数用来获取一个线串的终点。
  • MariaDB ST_PointN() 函数用来获取一个线串上的第 N 个点。
  • MariaDB ST_ExteriorRing() 函数用来获取一个多边形的外圈。

结论

MariaDB ST_StartPoint() 函数是一个非常有用的空间函数,可以让我们快速获取线串的起点。通过本文提供的示例,相信您已经对该函数有了全面的理解。在处理线状地理空间数据时,ST_StartPoint() 函数将是您的得力助手。