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

MariaDB ST_GeomFromWKB() 函数用来从二进制 WKB 格式的表示构造一个地理信息对象。

发布于

MariaDB ST_GeomFromWKB() 函数用来从二进制 WKB 格式的表示构造一个地理信息对象。该函数常用于从数据库中存储和读取地理空间数据。

语法

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

ST_GeomFromWKB(wkb[, srid])
  • wkb: 必选参数,是一个 BLOB 数据类型,存储的是二进制 WKB 格式的地理空间数据。
  • srid: 可选参数,是一个整数,表示空间参考系统标识符 (SRID)。如果未指定,则使用默认 SRID 值 0。

该函数返回一个地理信息对象。返回值的类型取决于输入 WKB 类型。

实例

从 WKB 构造点对象

此实例演示如何从 WKB 构造一个点对象。

DROP TABLE IF EXISTS test_table;
CREATE TABLE test_table (id INT PRIMARY KEY, pt POINT);
INSERT INTO test_table (id, pt) VALUES
  (1, ST_GeomFromWKB(0x0101000000000000000000F03F000000000000F03F));

SELECT id, ST_AsText(pt) FROM test_table;

以下是该语句的输出:

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

从 WKB 构造线对象

此实例演示如何从 WKB 构造一条线对象。

DROP TABLE IF EXISTS test_table;
CREATE TABLE test_table (id INT PRIMARY KEY, ln LINESTRING);
INSERT INTO test_table (id, ln) VALUES
  (1, ST_GeomFromWKB(0x0102000000020000000000000000000000000000000000F03F00000000000008400000000000001040));

SELECT id, ST_AsText(ln) FROM test_table;

以下是该语句的输出:

+----+---------------------+
| id | ST_AsText(ln)       |
+----+---------------------+
|  1 | LINESTRING(0 1,3 4) |
+----+---------------------+

从 WKB 构造多点对象

此实例演示如何从 WKB 构造一个多点对象。

DROP TABLE IF EXISTS test_table;
CREATE TABLE test_table (id INT PRIMARY KEY, mpt MULTIPOINT);
INSERT INTO test_table (id, mpt) VALUES
  (1, ST_GeomFromWKB(0x0104000000020000000101000000000000000000F03F0000000000000000010100000000000000000008400000000000001040));

SELECT id, ST_AsText(mpt) FROM test_table;

以下是该语句的输出:

+----+---------------------+
| id | ST_AsText(mpt)      |
+----+---------------------+
|  1 | MULTIPOINT(1 0,3 4) |
+----+---------------------+

相关函数

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

  • MariaDB ST_GeomFromText() 函数用来从 WKT 构造地理信息对象。
  • MariaDB ST_AsWKB() 函数用来将一个地理信息对象转换为 WKB 格式的二进制表示。
  • MariaDB ST_AsText() 函数用来将一个地理信息对象转换为 WKT 格式的文本表示。

结论

MariaDB ST_GeomFromWKB() 函数是一个非常实用的函数,它允许我们从 WKB 二进制格式构造出地理信息对象,从而实现了在数据库中存储和读取地理空间数据的功能。通过本文的实例,我们更好地理解了如何使用这个函数,以及它的作用和用法。