【図解】MariaDBでジオメトリコレクションを作成:ST_GeometryCollectionFromWKB関数のステップバイステップ解説


構文

ST_GeometryCollectionFromWKB(
  <WKB representation>
  [, <SRID>]
)

引数

  • <SRID> (オプション): ジオメトリの空間参照系識別子 (SRID)。省略すると、デフォルトの SRID が使用されます。
  • <WKB representation>: WKB 形式で表されたジオメトリコレクションの表現。

戻り値

GEOMETRYCOLLECTION 型のジオメトリ値。

SELECT ST_GeometryCollectionFromWKB(
  0x0107000000040000000500000001000000050000000100000006000000010000000700000002000000080000000300000009000000040000000A0000000B0000000C0000000D0000000E0000000F
);

この例では、WKB 形式で表された 5 つのポイントからなるジオメトリコレクションが構築されます。

  • ST_GeometryCollectionFromWKB 関数は、異なるタイプのジオメトリを組み合わせるために使用できます。


SELECT ST_GeometryCollectionFromWKB(
  0x0107000000040000000500000001000000050000000100000006000000010000000700000002000000080000000300000009000000040000000A0000000B0000000C0000000D0000000E0000000F
);

説明

例 2: 異なるタイプのジオメトリを組み合わせる

SELECT ST_GeometryCollectionFromWKB(
  0x0106000000010000000100000005000000010000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000A0000000A0000000B0000000B0000000C0000000C0000000D0000000D0000000E0000000E0000000F
);

説明

この例では、WKB 形式で表された 2 つのジオメトリが組み合わされます。最初のジオメトリは 5 つのポイントからなる LineString であり、2 番目のジオメトリは 5 つのポイントからなる Polygon です。

例 3: 空間参照系を指定する

SELECT ST_GeometryCollectionFromWKB(
  0x0107000000040000000500000001000000050000000100000006000000010000000700000002000000080000000300000009000000040000000A0000000B0000000C0000000D0000000E0000000F,
  4326
);

説明

この例では、WKB 形式で表された 5 つのポイントからなるジオメトリコレクションが構築されます。さらに、空間参照系として WGS 84 (SRID 4326) が指定されます。



代替方法

  • ST_MultiPointFromWKB 関数: WKB 形式で表された複数のポイントの表現を使用して、マルチポイント型ジオメトリ値を作成します。
  • ST_MultiLineFromWKB 関数: WKB 形式で表された複数のラインストリングの表現を使用して、マルチラインストリング型ジオメトリ値を作成します。
  • ST_MultiPolygonFromWKB 関数: WKB 形式で表された複数のポリゴンの表現を使用して、マルチポリゴン型ジオメトリ値を作成します。

例 1: ST_GeomFromText と ST_MultiGeometryFromGeometry を使用してジオメトリコレクションを作成する

SELECT ST_MultiGeometryFromGeometry(
  (
    SELECT ST_GeomFromText('POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))')
  ),
  (
    SELECT ST_GeomFromText('LINESTRING((0 0, 1 1, 2 2))')
  )
);

説明

この例では、テキスト形式で表されたポリゴンとラインストリングを使用して、ジオメトリコレクションを作成します。

例 2: ST_MultiPolygonFromWKB を使用してマルチポリゴン型ジオメトリを作成する

SELECT ST_MultiPolygonFromWKB(
  0x0106000000050000000100000005000000010000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000A0000000A0000000B0000000B0000000C0000000C0000000D0000000D0000000E0000000E0000000F
);

説明

この例では、WKB 形式で表された 2 つのポリゴンの表現を使用して、マルチポリゴン型ジオメトリ値を作成します。

例 3: ST_MultiLineFromWKB を使用してマルチラインストリング型ジオメトリを作成する

SELECT ST_MultiLineFromWKB(
  0x010600000003000000010000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F
);

説明

この例では、WKB 形式で表された 3 つのラインストリングの表現を使用して、マルチラインストリング型ジオメトリ値を作成します。

SELECT ST_MultiPointFromWKB(
  0x01070000000400000005000000