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

MariaDB ST_PointFromWKB() 函数用来从一个 Well-Known Binary (WKB) 值构造一个 POINT 几何值。

发布于

MariaDB ST_PointFromWKB() 函数用来从一个 Well-Known Binary (WKB) 值构造一个 POINT 几何值。WKB 是一种用于表示矢量几何的二进制格式。该函数常用于从数据库中读取存储的几何数据并将其转换为可用的几何对象。

语法

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

ST_PointFromWKB(wkb[, srid])
  • wkb:一个 BLOB 值,表示要转换为 POINT 的 WKB 数据。
  • srid:(可选)一个整数值,表示空间参考系统标识符 (SRID)。如果未指定,则使用默认 SRID 0。

函数返回一个 POINT 值,或者在输入 WKB 不合法时返回 NULL

实例

从 WKB 构造点

此实例将展示如何从一个 WKB 值构造一个 POINT 对象。

SET @g = ST_PointFromWKB(ST_AsWKB(ST_GeomFromText('POINT(1 1)')));
SELECT ST_AsText(@g);

以下是该语句的输出:

+---------------+
| ST_AsText(@g) |
+---------------+
| POINT(1 1)    |
+---------------+

从 WKB 构造点并指定 SRID

此实例将展示如何从一个 WKB 值构造一个 POINT 对象,并指定 SRID。

SET @g = ST_PointFromWKB(ST_AsWKB(ST_GeomFromText('POINT(1 1)')), 4326);
SELECT ST_AsText(@g), ST_SRID(@g);

以下是该语句的输出:

+---------------+-------------+
| ST_AsText(@g) | ST_SRID(@g) |
+---------------+-------------+
| POINT(1 1)    |        4326 |
+---------------+-------------+

使用 WKB 函数和 ST_PointFromWKB() 函数

此实例将展示如何使用 WKB 函数和 ST_PointFromWKB() 函数来操作点数据。

DROP TABLE IF EXISTS points;
CREATE TABLE points (id INT PRIMARY KEY, pt POINT NOT NULL);
INSERT INTO points VALUES
  (1, ST_PointFromWKB(ST_AsWKB(ST_GeomFromText('POINT(1 1)')))),
  (2, ST_PointFromWKB(ST_AsWKB(ST_GeomFromText('POINT(2 2)'))));
SELECT id, ST_AsText(pt) FROM points;

以下是该语句的输出:

+----+---------------+
| id | ST_AsText(pt) |
+----+---------------+
|  1 | POINT(1 1)    |
|  2 | POINT(2 2)    |
+----+---------------+

使用无效 WKB 值

此实例将展示当使用无效的 WKB 值时,ST_PointFromWKB() 函数的行为。

SELECT ST_PointFromWKB(UNHEX('0001'));

以下是该语句的输出:

+--------------------------------+
| ST_PointFromWKB(UNHEX('0001')) |
+--------------------------------+
| NULL                           |
+--------------------------------+

从 WKB 构造空 POINT

此实例将展示如何从一个空 WKB 值构造一个空 POINT 对象。

SET @g = ST_PointFromWKB(UNHEX('0101000000000000000000F03F000000000000F03F'));
SELECT ST_AsText(@g), ST_IsEmpty(@g);

以下是该语句的输出:

+---------------+----------------+
| ST_AsText(@g) | ST_IsEmpty(@g) |
+---------------+----------------+
| POINT(1 1)    |              0 |
+---------------+----------------+

相关函数

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

  • MariaDB ST_AsWKB() 函数用来从一个几何值构造一个 WKB 值。
  • MariaDB ST_GeomFromWKB() 函数用来从一个 WKB 值构造一个几何值,返回值为 GEOMETRY
  • MariaDB ST_PointFromText() 函数用来从一个 Well-Known Text (WKT) 值构造一个 POINT 几何值。
  • MariaDB ST_AsText() 函数用来从一个几何值构造一个 WKT 值。

结论

MariaDB ST_PointFromWKB() 函数是一个非常有用的函数,可以从存储的 WKB 数据中重构 POINT 几何对象。通过本文提供的实例,您应该可以掌握该函数的用法以及与其他相关函数的组合使用方式。无论是在地理信息系统 (GIS) 应用中还是处理空间数据时,ST_PointFromWKB() 函数都会发挥重要作用。