OceanBaseデータベースの地理情報システム(Geographic Information System、GIS)は、空間データ型の構築、格納、分析をサポートします。
OceanBaseデータベースでサポートされている空間データ型は以下のとおりです:
GEOMETRYPOINTLINESTRINGPOLYGONMULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION
単一値型
単一の空間データを格納するために使用します:
GEOMETRYは、あらゆる種類の幾何学的値を格納できます。POINT、LINESTRING、POLYGONは、最も基本的な3つの型であり、特定の幾何学的型の値のみを格納できます。POINT:点を表し、1つの座標値を持ちます。例:POINT(50 60)。経度が先、緯度が後で、空白で区切ります。LINESTRING:線を表し、一連の点が結ばれています。例:LINESTRING(30 20,10 30,50 50)。点と点はカンマで区切り、1つの点内の経度と緯度は空白で区切ります。これはPOINTの形式と一致しています。POLYGON:多角形を表します。実心の平面形(内部境界がない場合)または中空の場合があります。例:外側の境界が1つしかない場合、POLYGON((0 0,10 0,10 10,0 10))。
GEOMETRY はすべての空間集合型の基底クラスであり、POINT、LINESTRING、POLYGON などの他の型はすべて GEOMETRY のサブクラスです。
集合型
複数の値を格納するために使用します:
MULTIPOINT、MULTILINESTRING、MULTIPOLYGONは、空間データの集合を格納するための3つの集合型ですが、それぞれが指定する基本型の集合のみを表現できます。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 の4つの型はすべて集合クラスであり、複数の POINT、LINESTRING、または POLYGON が組み合わさっています。
SRID属性
空間型列上の空間参照システム(SRS)の値を定義するために使用されます。SRID 属性を定義した列には、以下の2つの特性があります:
- その列に書き込む空間オブジェクトの
SRIDは、列で定義されたSRID属性と一致している必要があります。一致しない場合、書き込み操作は失敗します。 - その列で定義された空間インデックスは、空間クエリ時に有効になります。
例
空間型フィールドは nullable 属性と空間座標系の SRID 属性の定義をサポートします。例:
obclient [test]> CREATE TABLE tbl1_g(g GEOMETRY NOT NULL SRID 0);
Query OK, 0 rows affected