MariaDB ST_PolyFromWKB() 函数的基础用法与实例
MariaDB ST_PolyFromWKB()
函数用来从一个 Well-Known Binary (WKB) 值构造一个 POLYGON
几何值。
发布于
MariaDB ST_PolyFromWKB()
函数用来从一个 Well-Known Binary (WKB) 值构造一个 POLYGON
几何值。WKB 是一种用于表示矢量几何的二进制格式。该函数常用于从数据库中读取存储的 WKB 数据并将其转换为可用的几何对象。
语法
MairaDB ST_PolyFromWKB()
函数的语法如下:
ST_PolyFromWKB(wkb[, srid])
wkb
:一个BLOB
值,表示要转换为POLYGON
的 WKB 数据。srid
:(可选)一个整数值,表示空间参考系统标识符 (SRID)。如果未指定,则使用默认 SRID 0。
该函数返回一个 POLYGON
值。如果 WKB 无效,则返回 NULL
。
实例
从 WKB 构造多边形
此实例将展示如何从一个 WKB 值构造一个多边形。
SET @p = ST_PolyFromWKB(ST_AsWKB(ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))')));
SELECT ST_AsText(@p);
以下是该语句的输出:
+------------------------------------+
| ST_AsText(@p) |
+------------------------------------+
| POLYGON((0 0,10 0,10 10,0 10,0 0)) |
+------------------------------------+
从 WKB 构造多边形并指定 SRID
此实例将展示如何从一个 WKB 值构造一个多边形,并指定 SRID。
SET @p = ST_PolyFromWKB(ST_AsWKB(ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))')), 4326);
SELECT ST_AsText(@p), ST_SRID(@p);
以下是该语句的输出:
+------------------------------------+-------------+
| ST_AsText(@p) | ST_SRID(@p) |
+------------------------------------+-------------+
| POLYGON((0 0,10 0,10 10,0 10,0 0)) | 4326 |
+------------------------------------+-------------+
使用无效 WKB
此实例将展示当使用无效的 WKB 时,ST_PolyFromWKB()
函数的行为。
SELECT ST_PolyFromWKB(UNHEX('0001'));
以下是该语句的输出:
+-------------------------------+
| ST_PolyFromWKB(UNHEX('0001')) |
+-------------------------------+
| NULL |
+-------------------------------+
从表中构造多边形
此实例将展示如何从一个表中构造多边形。
DROP TABLE IF EXISTS polygons;
CREATE TABLE polygons (id INT PRIMARY KEY, wkb BLOB NOT NULL);
INSERT INTO polygons VALUES
(1, ST_AsWKB(ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'))),
(2, ST_AsWKB(ST_GeomFromText('POLYGON((2 2, 4 2, 4 4, 2 4, 2 2))')));
SELECT id, ST_AsText(ST_PolyFromWKB(wkb)) FROM polygons;
以下是该语句的输出:
+----+------------------------------------+
| id | ST_AsText(ST_PolyFromWKB(wkb)) |
+----+------------------------------------+
| 1 | POLYGON((0 0,10 0,10 10,0 10,0 0)) |
| 2 | POLYGON((2 2,4 2,4 4,2 4,2 2)) |
+----+------------------------------------+
结合其他函数使用
此实例将展示如何将 ST_PolyFromWKB()
与其他函数结合使用。
SET @p = ST_PolyFromWKB(ST_AsWKB(ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))')));
SELECT ST_AsText(@p),
ST_Area(@p),
ST_AsText(ST_Centroid(@p));
以下是该语句的输出:
+------------------------------------+-------------+----------------------------+
| ST_AsText(@p) | ST_Area(@p) | ST_AsText(ST_Centroid(@p)) |
+------------------------------------+-------------+----------------------------+
| POLYGON((0 0,10 0,10 10,0 10,0 0)) | 100 | POINT(5 5) |
+------------------------------------+-------------+----------------------------+
相关函数
以下是几个与 MairaDB ST_PolyFromWKB()
相关的几个函数:
- MariaDB
ST_PolyFromText()
函数用来从一个 Well-Known Text (WKT) 值构造一个多边形。 - MariaDB
ST_AsWKB()
函数用来将一个几何值转换为 WKB 格式。 - MariaDB
ST_PolyFromText()
函数用来从一个 WKT 字符串构造一个多边形。 - MariaDB
ST_Area()
函数用来计算一个多边形的面积。 - MariaDB
ST_Centroid()
函数用来返回一个几何对象的质心。
结论
MariaDB ST_PolyFromWKB()
函数是一个非常实用的函数,可以从存储的 WKB 数据中重构多边形几何对象。通过结合其他几何函数,您可以对构造出的多边形执行各种空间分析和处理操作。无论是在地理信息系统 (GIS) 应用中还是处理空间数据时,ST_PolyFromWKB()
函数都可以发挥重要作用。