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

MariaDB ST_X() 函数用来获取一个点的X坐标值。

发布于

MariaDB ST_X() 函数用来获取一个点的 X 坐标值。该函数对于处理空间数据和几何数据非常有用。

语法

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

ST_X(point)
  • point 是一个 POINT 类型的几何对象。
  • 函数返回该点的 X 坐标值,返回值的类型为 DOUBLE。

实例

获取单个点的 X 坐标

SELECT ST_X(ST_PointFromText('POINT(1.5 2.5)'));

以下是该语句的输出:

+------------------------------------------+
| ST_X(ST_PointFromText('POINT(1.5 2.5)')) |
+------------------------------------------+
|                                      1.5 |
+------------------------------------------+

结果显示该点的 X 坐标为 1.5。

从表中获取所有点的 X 坐标

DROP TABLE IF EXISTS points;
CREATE TABLE points (
    id INT PRIMARY KEY AUTO_INCREMENT,
    pt POINT NOT NULL
);

INSERT INTO points (pt) VALUES
    (ST_PointFromText('POINT(2 3)')),
    (ST_PointFromText('POINT(4 5)')),
    (ST_PointFromText('POINT(6 7)'));

SELECT id, ST_X(pt) AS x_coord
FROM points;

以下是该语句的输出:

+----+---------+
| id | x_coord |
+----+---------+
|  1 |       2 |
|  2 |       4 |
|  3 |       6 |
+----+---------+

结果显示了表中每个点的 X 坐标。

获取线串的起点 X 坐标

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)'));

SELECT id, ST_X(ST_StartPoint(ln)) AS start_x
FROM lines_table;

以下是该语句的输出:

+----+---------+
| id | start_x |
+----+---------+
|  1 |       1 |
|  2 |       7 |
+----+---------+

结果显示了每条线串的起点 X 坐标。

获取多边形外圈起点 X 坐标

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_X(ST_StartPoint(ST_ExteriorRing(poly))) AS start_x
FROM polygons;

以下是该语句的输出:

+----+---------+
| id | start_x |
+----+---------+
|  1 |       1 |
|  2 |       5 |
+----+---------+

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

相关函数

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

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

结论

MariaDB ST_X() 函数是一个非常基础但又非常实用的空间函数,可以让我们快速获取点的 X 坐标值。通过本文提供的示例,相信您已经对该函数有了全面的理解。在处理地理空间数据时,ST_X() 函数将是您的得力助手。