首批通过分布式安全可靠测评,为关键业务系统打造
空间类型
更新时间:2026-04-16 00:11:36
OceanBase 数据库的地理信息系统(Geographic Information System,GIS)支持空间数据类型的构造、存储和分析。
OceanBase 数据库支持的空间数据类型如下:
GEOMETRYPOINTLINESTRINGPOLYGONMULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION
单值类型
用于保存单个空间数据:
GEOMETRY能够保存任何类型的几何值。POINT、LINESTRING和POLYGON是最基础的三种类型,只能保存特定几何类型的值。POINT:表示点,有一个坐标值。例如:POINT(50 60),经度在前,维度在后,用空格分隔。LINESTRING:表示线,由一系列的点连接而成。例如:LINESTRING(30 20,10 30,50 50),点与点之间用逗号分隔,一个点中的经纬度用空格分隔,与POINT格式一致。POLYGON:表示多边形,可以是一个实心平面形,即没有内部边界,也可以有空洞。例如:只有一个外边界的情况,POLYGON((0 0,10 0,10 10,0 10))。
GEOMETRY 是所有空间集合类型的基类,其他类型如 POINT、LINESTRING、POLYGON 都是 GEOMETRY 的子类。
集合类型
用于保存多个值:
MULTIPOINT、MULTILINESTRING和MULTIPOLYGON是三种集合类型,用于保存空间数据集合,但只能表示各自指定基础类型的集合。MULTIPOINT:表示点的集合。例如:MULTIPOINT(10 0),(5 10),(25 5),(20 5)或MULTIPOINT(10 0,5 10,25 5,20 5)。MULTILINESTRING:表示线的集合。例如:MULTILINESTRING((0 0,15 5,10 10),(30 20,10 30,40 40))。MULTIPOLYGON:表示图形的集合。例如:MULTIPOLYGON(((30 20, 45 40, 10 40,30 20)),((15 5,40 10,10 20,5 10,15 5)))和MULTIPOLYGON(((40 40,20 45,45 30,40 40)),((20 35,10 30,10 10,30 5,45 20,20 35),(30 20,20 15,20 25,30 20)))。
GEOMETRYCOLLECTION能保存任意类型的对象集合。例如:GEOMETRYCOLLECTION(POINT(40 10),LINESTRING(10 10,20 20,10 40),POLYGON((40 40,20 45,45 30,40 40)))。
MULTIPOINT、MULTILINESTRING、MULTIPOLYGON 和 GEOMETRYCOLLECTION 这四种类型都是集合类,是多个 POINT、LINESTRING 或 POLYGON 组合而成。
SRID 属性
用来定义空间类型列上空间参考系统(SRS)的值,定义了 SRID 属性的列包含以下两种特性:
- 写入该列的空间对象的
SRID必须和列定义的SRID属性一致,否则写入操作失败。 - 在该列定义的空间索引可以在空间查询的时候生效。
示例
空间类型字段支持定义 nullable 属性以及空间坐标系 SRID 属性,示例如下:
obclient [test]> CREATE TABLE tbl1_g(g GEOMETRY NOT NULL SRID 0);
Query OK, 0 rows affected