カテゴリ:

地理空間関数変換関数

TO_GEOMETRY

入力を解析し、 GEOMETRY 型の値を返します。

こちらもご参照ください。

TRY_TO_GEOMETRYST_GEOMETRYFROMWKBST_GEOMETRYFROMWKT

構文

次のいずれかを使用します。

TO_GEOMETRY( <varchar_expression> [ , <srid> ] [ , <allow_invalid> ] )

TO_GEOMETRY( <binary_expression> [ , <srid> ] [ , <allow_invalid> ] )

TO_GEOMETRY( <variant_expression> [ , <srid> ] [ , <allow_invalid> ] )
Copy

引数

必須:

varchar_expression

引数は、次のいずれかの形式で有効なジオメトリオブジェクトを表す文字列式である必要があります。

  • WKT (よく知られているテキスト)。

  • WKB (周知のバイナリ)16進数形式(先頭に 0x なし)。

  • EWKT (周知のテキスト)。

  • EWKB (周知のバイナリ)16進数形式(先頭に 0x なし)。

  • GeoJSON

binary_expression

引数は WKB または EWKB 形式のバイナリ式である必要があります。

variant_expression

引数は、 GeoJSON 形式の OBJECT である必要があります。

オプション:

srid

使用する SRID の整数値。

allow_invalid

TRUE の場合、入力形状が無効で修復できない場合でも、関数が GEOGRAPHY または GEOMETRY オブジェクトを返す必要があることを指定します。詳細については、 無効な地理空間形状の処理方法の指定 をご参照ください。

戻り値

この関数は、 GEOMETRY 型の値を返します。

使用上の注意

  • 入力が、サポートされている形式(WKT、 WKB、 EWKT、 EWKB、 GeoJSON)の1つとして解析できない場合は、エラーを発行します。

  • GeoJSON、 WKT、および WKB 入力の場合は、 srid 引数が指定されていないと、結果の GEOMETRY オブジェクトの SRID は0に設定されます。

  • WKT または EWKT 入力から GEOMETRY オブジェクトを構築するには、 ST_GEOMETRYFROMWKT を使用することもできます。

  • WKB または EWKB 入力から GEOMETRY オブジェクトを構築するには、 ST_GEOMETRYFROMWKB を使用することもできます。

次の例は、 TO_GEOMETRY 関数を使用して、 WKT で表されるオブジェクトを GEOMETRY オブジェクトに変換する方法を示しています。この例では、 srid 引数が指定されておらず、オブジェクトの入力表現で SRID が指定されていないため、 SRID は0に設定されます。

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT TO_GEOMETRY('POINT(1820.12 890.56)');
Copy
+--------------------------------------+
| TO_GEOMETRY('POINT(1820.12 890.56)') |
|--------------------------------------|
| SRID=0;POINT(1820.12 890.56)         |
+--------------------------------------+

次の例では、 EWKT で表されるオブジェクトを GEOMETRY オブジェクトに変換します。入力 EKWT は、使用する SRID を指定します。

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT TO_GEOMETRY('SRID=4326;POINT(1820.12 890.56)');
Copy
+------------------------------------------------+
| TO_GEOMETRY('SRID=4326;POINT(1820.12 890.56)') |
|------------------------------------------------|
| SRID=4326;POINT(1820.12 890.56)                |
+------------------------------------------------+

次の例は、 SRID を srid 入力引数として指定する方法を示しています。

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT TO_GEOMETRY('POINT(1820.12 890.56)', 4326);
Copy
+--------------------------------------------+
| TO_GEOMETRY('POINT(1820.12 890.56)', 4326) |
|--------------------------------------------|
| SRID=4326;POINT(1820.12 890.56)            |
+--------------------------------------------+

次の例は、 EWKT 形式内で説明されたZ座標のある地理空間オブジェクトに対して GEOMETRY オブジェクトを返します。

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='EWKT';

SELECT TO_GEOMETRY('SRID=32633;POINTZ(389866.35 5819003.03 30)');
Copy
+-----------------------------------------------------------+
| TO_GEOMETRY('SRID=32633;POINTZ(389866.35 5819003.03 30)') |
|-----------------------------------------------------------|
| SRID=32633;POINTZ(389866.35 5819003.03 30)                |
+-----------------------------------------------------------+