MariaDB ST_GeometryFromText() 函数的基础用法与实例
MariaDB ST_GeometryFromText() 函数用来将一个 Well-Known Text (WKT)表示的几何对象转换为相应的几何对象。
MariaDB ST_GeometryFromText() 函数用来将一个 Well-Known Text (WKT)表示的几何对象转换为相应的几何对象。它常用于从文本形式创建几何数据。
语法
MairaDB ST_GeometryFromText() 函数的语法如下:
ST_GeometryFromText(wkt[, srid])
- wkt:一个 Well-Known Text 字符串,表示一个几何对象。
- srid:可选。一个整数值,表示空间参考系统标识符(SRID)。
该函数返回一个几何对象。如果输入的 WKT 无效,则返回 NULL。
实例
从 WKT 创建一个点
本实例将展示如何从 WKT 创建一个点。
SELECT ST_AsText(ST_GeometryFromText('POINT(0 0)'));
以下是该语句的输出:
+----------------------------------------------+
| ST_AsText(ST_GeometryFromText('POINT(0 0)')) |
+----------------------------------------------+
| POINT(0 0)                                   |
+----------------------------------------------+从输出可以看到,ST_GeometryFromText()函数成功地从 WKT 创建了一个点。
指定 SRID
本实例将展示如何在创建几何对象时指定 SRID。
SELECT ST_AsText(ST_GeometryFromText('POINT(0 0)', 4326));
以下是该语句的输出:
+----------------------------------------------------+
| ST_AsText(ST_GeometryFromText('POINT(0 0)', 4326)) |
+----------------------------------------------------+
| POINT(0 0)                                         |
+----------------------------------------------------+在这个示例中,我们将 SRID 设置为 4326,代表 WGS 84 坐标系统。
从表中查询几何对象
本实例将展示如何从一个表中查询几何对象。
DROP TABLE IF EXISTS geometries;
CREATE TABLE geometries (
  gid INT AUTO_INCREMENT KEY,
  geom GEOMETRY
);
INSERT INTO geometries (geom) VALUES
  (ST_GeometryFromText('POINT(0 0)')),
  (ST_GeometryFromText('LINESTRING(0 0,1 1,2 2)')),
  (ST_GeometryFromText('POLYGON((0 0,10 0,10 10,0 10,0 0))'));
SELECT ST_AsText(geom)
FROM geometries;
以下是该语句的输出:
+------------------------------------+
| ST_AsText(geom)                    |
+------------------------------------+
| POINT(0 0)                         |
| LINESTRING(0 0,1 1,2 2)            |
| POLYGON((0 0,10 0,10 10,0 10,0 0)) |
+------------------------------------+在这个示例中,我们首先创建了一个表来存储几何对象数据,然后从表中查询出这些数据。
计算几何对象的长度或面积
本实例将展示如何计算一个几何对象的长度或面积。
DROP TABLE IF EXISTS geometries;
CREATE TABLE geometries (
  gid INT AUTO_INCREMENT KEY,
  geom GEOMETRY
);
INSERT INTO geometries (geom) VALUES
  (ST_GeometryFromText('POINT(0 0)')),
  (ST_GeometryFromText('LINESTRING(0 0,1 1,2 2)')),
  (ST_GeometryFromText('POLYGON((0 0,10 0,10 10,0 10,0 0))'));
SELECT
  ST_AsText(geom) AS geom,
  ST_Length(geom) AS length,
  ST_Area(geom) AS area
FROM geometries;
以下是该语句的输出:
+------------------------------------+--------------------+------+
| geom                               | length             | area |
+------------------------------------+--------------------+------+
| POINT(0 0)                         |                  0 |    0 |
| LINESTRING(0 0,1 1,2 2)            | 2.8284271247461903 |    0 |
| POLYGON((0 0,10 0,10 10,0 10,0 0)) |               NULL |  100 |
+------------------------------------+--------------------+------+在这个示例中,我们分别计算了每个几何对象的长度和面积。
使用无效的 WKT
本实例将展示当输入的 WKT 无效时,ST_GeometryFromText()函数的行为。
SELECT ST_AsText(ST_GeometryFromText('POINT(0)'));
以下是该语句的输出:
NULL由于输入的 WKT 无效(POINT 缺少第二个坐标值),因此函数返回了 NULL。
相关函数
以下是几个与 MairaDB ST_GeometryFromText() 相关的几个函数:
- MariaDB ST_GeomFromText()函数用来将一个 Well-Known Text 表示的几何对象转换为相应的几何对象(别名)。
- MariaDB ST_AsText()函数用来将一个几何对象转换为 Well-Known Text 表示。
- MariaDB ST_GeometryType()函数用来获取一个几何对象的类型。
- MariaDB ST_Dimension()函数用来获取一个几何对象的维度。
结论
本文介绍了 MariaDB ST_GeometryFromText() 函数的用法以及一些实例。通过这些实例,我们学习了如何从 WKT 创建各种几何对象,如何指定 SRID,如何从表中查询几何对象,如何计算几何对象的长度或面积,以及当输入无效时函数的行为。