すべてのプロダクト
Search
ドキュメントセンター

Lindorm:空間データ型

最終更新日:Jan 14, 2025

このトピックでは、Lindorm GanosBase でサポートされている空間データの型と形式について説明します。

ジオメトリとそのサブタイプ

次の表に、Lindorm GanosBase でサポートされているジオメトリデータ型とそのサブタイプを示します。

データ型

説明

Geometry

すべての空間データの一般的な型です。Geometry オブジェクトには、Point オブジェクト、LineString オブジェクト、Polygon オブジェクト、MultiPoint オブジェクト、MultiPolygon オブジェクト、MultiLineString オブジェクト、GeometryCollection オブジェクトなどのサブタイプのオブジェクトが含まれます。空間列のデータ型を Geometry に設定しないことをお勧めします。

説明
  • 空間列のデータ型を Geometry に設定すると、Point、LineString、Polygon、MultiPoint、MultiPolygon、MultiLineString、GeometryCollection など、すべてのタイプの空間オブジェクトをこの列に格納できます。ただし、特定のサブタイプに固有の spatio-temporal インデックスはこの列には適していません。

  • 空間列のデータ型を Geometry のサブタイプに設定すると、このサブタイプのデータのみをこの列に格納できます。たとえば、データ型が Point の列には、Point オブジェクトのみを格納できます。

spatio-temporal テーブルを作成するときに、空間列のデータ型を指定します。

Point

Point オブジェクトのデータ型です。Point オブジェクトは、経度 x と緯度 y で構成される座標によって識別されます。

説明

3 次元 Point オブジェクトは計算に使用できません。Lindorm GanosBase は、計算時に 3 次元 Point オブジェクトを 2 次元 Point オブジェクトに変換します。

車両や船舶で受信した GPS 座標を指定します。

LineString

LineString オブジェクトのデータ型です。LineString オブジェクトは、2 つ以上の Point オブジェクトで構成されます。LineString オブジェクトでは、線分の終点は次の線分の始点である必要があります。

説明

線分は、2 つ以上の Point オブジェクトで構成されている必要があります。2 つの線分は同じ頂点を持つことができます。

  • 複数の LineString オブジェクトで構成される可能性のある道路を指定します。

  • 特定の時間範囲内での車両の軌跡を指定します。軌跡は複数の Point オブジェクトで構成されます。

Polygon

Polygon オブジェクトのデータ型です。Polygon オブジェクトの外側の境界は閉じた線です。線の始点と終点の座標は同じです。

説明

Polygon オブジェクトは、少なくとも 3 つの Point オブジェクトで識別できます。

  • ジオフェンスを指定します。

  • 地図内の土地の区画、森林、行政区画などの Polygon オブジェクトを指定します。

  • 長方形や円などのグラフィックを指定します。

MultiPoint

0 個以上の Point オブジェクトのコレクションです。

遊園地内のすべてのチケット売り場を指定します。

MultiLineString

0 個以上の LineString オブジェクトのコレクションです。

複数の LineString オブジェクトで構成される道路を指定します。

MultiPolygon

0 個以上の Polygon オブジェクトのコレクションです。

1 つ以上の郡または地区で構成される都市を指定します。各郡または地区は、Polygon オブジェクトで表されます。

GeometryCollection

0 個以上のジオメトリオブジェクトのコレクションです。

複数のグラフィックのコレクションを指定します。

ジオメトリオブジェクトの構築

ポイント座標に基づいてジオメトリオブジェクトを構築する

ST_MakePoint 関数を使用してポイント座標に基づいて Point オブジェクトを構築するか、ST_LineFromMultiPoint 関数を使用してポイント座標に基づいて LineString オブジェクトを構築できます。詳細については、「ジオメトリコンストラクター」をご参照ください。

WKT 文字列に基づいてジオメトリオブジェクトを構築する

WKT 形式

WKT は、Open Geospatial Consortium(OGC)によって定義された形式です。WKT はテキストを使用して空間オブジェクトを記述します。WKT の詳細については、「Well-Known Text」を参照してください。Lindorm GanosBase では、Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon などのタイプのジオメトリオブジェクトを WKT 形式で指定できます。WKT 形式の空間情報には、Spatial Reference IDentifier(SRID)を含めることができません。

次の表に、Lindorm GanosBase でサポートされている WKT データ型を示します。

データ型

構文

Point

POINT(x y): 経度が x、緯度が y のポイントを示します。

  • POINT(-10.1 3.3): 特定のポイントを示します。

  • POINT EMPTY: 空のポイントを示します。

LineString

LINESTRING(x1 y1,x2 y2,...,xn yn): n 個のポイントで指定された LineString オブジェクトを示します。x1 から xn の値はポイントの経度を示し、y1 から yn の値はポイントの緯度を示します。

  • LINESTRING(3 4,10 50,20 25): 3 つのポイントで指定された LineString オブジェクトを示します。

  • LINESTRING EMPTY: 空の線を示します。

Polygon

POLYGON((x1 y1,x2 y2,...,xn yn),(xa ya,xb b,...,xm ym)): 2 つの閉じた境界で構成される Polygon オブジェクトを示します。x1 から xn および xa から xm の値は、境界内のポイントの経度を示します。y1 から yn および ya から ym の値は、境界内のポイントの緯度を示します。

  • POLYGON((2 2, 2 8, 8 8, 8 2, 2 2)): 閉じた外側の境界を持つ Polygon を示します。

  • POLYGON((0.5 0.5,5 0,5 5,0 5,0.5 0.5),(1.5 1,4 3,4 1,1.5 1)): 閉じた外側の境界と閉じた内側の境界で構成される Polygon を示します。

  • POLYGON EMPTY: 空の Polygon を示します。

MultiPoint

MultiPoint(x1 y1, x2 y2, ..., xn yn): n 個のポイントのコレクションを示します。x1 から xn の値はポイントの経度を示し、y1 から yn の値はポイントの緯度を示します。

MULTIPOINT (10 40, 40 30, 20 20, 30 10): POINT(10 40)POINT(40 30)POINT(20 20)POINT(30 10) の 4 つのポイントのコレクションを示します。

MultiLineString

MultiLineString ((x11 y11, x12 y12, ..., x1n y1n),(x21 y21, x22 y22, ..., x2m y2m), ...): 複数の LineString オブジェクトのコレクションを示します。x11 から x1n および x21 から x2m の値は、最初の 2 つの LineString オブジェクト内のポイントの経度を示し、y11 から y1n および y21 から y2m の値は、最初の 2 つの LineString オブジェクト内のポイントの緯度を示します。

MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10)) : LINESTRING(10 10, 20 20, 10 40)LINESTRING(40 40, 30 30, 40 20, 30 10) の 2 つの LineString オブジェクトのコレクションを示します。

MultiPolygon

MultiPolygon (((x11 y11, x12 y12, ..., x1n y1n)),((x21 y21, x22 y22, ..., x2m y2m)),...): 複数の Polygon オブジェクトのコレクションを示します。x11 から x1n および x21 から x2m の値は、最初の 2 つの Polygon オブジェクト内のポイントの経度を示し、y11 から y1n および y21 から y2m の値は、最初の 2 つの Polygon オブジェクト内のポイントの緯度を示します。

  • MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5))): 閉じた外側の境界のみを持つ POLYGON((30 20, 45 40, 10 40, 30 20))POLYGON((15 5, 40 10, 10 20, 5 10, 15 5)) の 2 つの Polygon オブジェクトのコレクションを示します。

  • 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))) : 次の Polygon オブジェクトのコレクションを示します。

    • 閉じた外側の境界のみを持つ Polygon オブジェクト: POLYGON((40 40, 20 45, 45 30, 40 40))

    • 閉じた外側の境界と閉じた内側の境界で構成される Polygon オブジェクト: POLYGON((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),(30 20, 20 15, 20 25, 30 20))

GeometryCollection

GeometryCollection (Point/LineString/Polygon/MultiPoint/MultiLineString/MultiPolygon)

GEOMETRYCOLLECTION (POINT (40 10),LINESTRING (10 10, 20 20, 10 40),POLYGON ((40 40, 20 45, 45 30, 40 40))) : 次のジオメトリオブジェクトのコレクションを示します。

  • Point オブジェクト: POINT(40 10)。

  • LineString オブジェクト: LINESTRING(10 10, 20 20, 10 40)。

  • Polygon オブジェクト: POLYGON((40 40, 20 45, 45 30, 40 40))。

構築方法

ST_GeomFromText 関数を使用して、WKT 文字列に基づいてジオメトリオブジェクトを構築できます。詳細については、「ジオメトリコンストラクター」をご参照ください。

Geometry オブジェクトの出力

Geometry オブジェクトを WKB 文字列として出力する

WKB は、OGC によって定義された形式です。WKB は、シリアル化バイトを使用して空間オブジェクトを記述します。WKB の詳細については、「Well-Known Binary」を参照してください。Lindorm GanosBase では、Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon などのタイプのジオメトリオブジェクトを WKB 形式で指定できます。

ジオメトリオブジェクトは、16 進数の WKB 文字列として出力されます。次のステートメントは、ジオメトリオブジェクトを WKB 文字列として出力する方法の例を示しています。

SELECT ST_GeomFromText('POINT(-10.1 3.3)') as p;

次の結果が返されます。

+--------------------------------+
|               p                |
+--------------------------------+
| 0020000001000010E6C02433333333 |
| 3333400A666666666666           |
+--------------------------------+

Geometry オブジェクトを WKT 文字列として出力する

ST_AsText 関数を使用して、ジオメトリオブジェクトを WKT 文字列として出力できます。詳細については、「出力関数」をご参照ください。