首批通过分布式安全可靠测评,为关键业务系统打造
创建几何值函数
更新时间:2025-03-06 14:26:07
创建几何值函数用于以各种格式(如 Well-Known Text (WKT) 或 Well-Known Binary (WKB))创建几何图形。OceanBase 数据库当前版本所支持的创建几何值的函数包括 ST_GeomFromText() 和 ST_GeometryFromText()、ST_GeomFromWKB() 和 ST_GeometryFromWKB()。
ST_GeomFromText():从 WKT 格式的字符串中创建几何图形。ST_GeometryFromText():功能上与ST_GeomFromText()相似,也是从 WKT 格式的字符串创建几何图形。不同的数据库系统可能会提供不同命名的函数,但功能类似。ST_GeomFromWKB():从 WKB 格式的二进制数据中创建几何图形。ST_GeometryFromWKB(): 功能上与ST_GeomFromWKB()相似,也是从 WKB 格式的二进制数据创建几何图形。_ST_MakePoint:用于创建新的点几何对象。
ST_GeomFromText 和 ST_GeometryFromText
ST_GeomFromText() 和 ST_GeometryFromText() 函数将 Well-Known Text(WKT) 表示形式和可选的空间参考系统标识符 (SRID) 作为参数,返回相应的几何图形。有关 WKT 格式的说明,请参见 空间数据格式。
ST_GeomFromText() 接受任何几何类型的 WKT 值作为其第一个参数。其他函数提供特定类型的构造函数,用于构造每种几何类型的几何值。 函数的语法如下:
ST_GeomFromText(wkt [, srid [, options]]), ST_GeometryFromText(wkt [, srid [, options]])
示例如下:
obclient [test]> SET @geo = "MULTILINESTRING((10 10, 11 11), (9 9, 10 10))";
Query OK, 0 rows affected
obclient [test]> SELECT ST_AsText(ST_GeomFromText(@geo));
+--------------------------------------------+
| ST_AsText(ST_GeomFromText(@geo)) |
+--------------------------------------------+
| MULTILINESTRING((10 10,11 11),(9 9,10 10)) |
+--------------------------------------------+
1 row in set
ST_GeomFromWKB 和 ST_GeometryFromWKB
ST_GeomFromWKB() 和 ST_GeometryFromWKB() 函数将包含 Well-Known Binary (WKB) 表示和可选的空间参考系统标识符 (SRID) 的 BLOB 作为参数,返回相应的几何图形。有关 WKB 格式的说明,请参见 空间数据格式。
函数的语法如下:
ST_GeomFromWKB(wkb [, srid [, options]]), ST_GeometryFromWKB(wkb [, srid [, options]])
参数的注意事项
创建几何值函数中几何参数何参数的返回值为非 NULL,以下情况除外:
如果任何几何参数为
NULL或不是语法格式不正确,则返回值为NULL。可选的
options参数可以使地理坐标的纬度和经度按照几何参数的空间参考系统指定的顺序进行解析。options由逗号分隔的key=value列表组成。key值只能是axis-order,允许的值为lat-long、long-lat和srid-defined(默认值)。如果options参数为NULL,则返回值为NULL。如果选项参数无效,则会发生报错。如果
SRID参数引用未定义的空间参考系统 (SRS),则会发生ER_SRS_NOT_FOUND错误。对于地理 SRS 几何参数,如果任何参数的经度或纬度超出范围(范围以度为单位,如果 SRS 使用其他单位,则范围使用其单位中的相应值),则会发生报错:
如果经度值不在范围 (-180, 180] 内,则会发生
ER_LONGITUDE_OUT_OF_RANGE错误。如果纬度值不在 [−90, 90] 范围内,则会发生
ER_LATITUDE_OUT_OF_RANGE错误。