几何格式转换函数
几 何格式转换函数用于将几何值从内部几何格式转换为 WKT 或 WKB 格式,或者交换 X 和 Y 坐标的顺序。seekdb 当前版本所支持的几何格式转换函数包括 ST_AsBinary()、ST_AsWKB、ST_AsText() 和 ST_AsWKT()。
ST_AsBinary 和 ST_AsWKB
ST_AsBinary() 和 ST_AsWKB() 将内部几何格式的值转换为其 WKB 的表示形式并返回二进制结果。语法如下:
ST_AsBinary(g [, options]), ST_AsWKB(g [, options])
函数返回值具有地理坐标(纬度、经度),其顺序由应用于几何参数的空间参考系统指定。指定可选的 options 参数可以覆盖默认的轴顺序。
SELECT ST_AsText(ST_GeomFromWKB(ST_AsWKB(@geo, 'axis-order=long-lat')));
ST_AsText 和 ST_AsWKT
ST_AsText() 和 ST_AsWKT() 函数将内部几何格式的值转换为其 WKT 的表示形式并返回字符串结果。语法如下:
ST_AsText(g [, options]), ST_AsWKT(g [, options])
函数返回值具有地理坐标(纬度、经度),其顺序由应用于几何参数的空间参考系统指定。指定可选的 options 参数可以覆盖默认的轴顺序。
SET @geo = 'LINESTRING(0 6,6 12,12 18)';
Query OK, 0 rows affected (0.001 sec)
SELECT ST_AsText(ST_GeomFromText(@geo));
+----------------------------------+
| ST_AsText(ST_GeomFromText(@geo)) |
+----------------------------------+
| LINESTRING(0 6,6 12,12 18) |
+----------------------------------+
1 row in set (0.001 sec)
参数的注意事项
几何格式转换函数中几何参数的返回值为非 NULL,以下情况除外:
- 如果任何几何参数的语法格式不正确,则会发生报错
ER_GIS_INVALID_DATA。 - 如果任何几何参数位于未定义的空间参考系统中,则轴将按照它们在几何中出现的顺序输出,并出现告警
ER_WARN_SRS_NOT_FOUND_AXIS_ORDER。 - 默认情况下,地理坐标(纬度、经度)按照几何参数的空间参考系统指定的顺序进行解析。如果指定可选的
options参数可以覆盖默认的轴顺序。options由逗号分隔的key=value列表组成。key值只能是axis-order,允许的值为lat-long、long-lat和srid-defined(默认值)。如果options参数为NULL,则返回值为NULL。如果选项参数无效,则会发生报错。