書式
SDO_CS.TRANSFORM( geom IN SDO_GEOMETRY, to_srid IN NUMBER ) RETURN SDO_GEOMETRY;
または
SDO_CS.TRANSFORM( geom IN SDO_GEOMETRY, to_srname IN VARCHAR2 ) RETURN SDO_GEOMETRY;
または
SDO_CS.TRANSFORM( geom IN SDO_GEOMETRY, use_case IN VARCHAR2, to_srid IN NUMBER ) RETURN SDO_GEOMETRY;
または
SDO_CS.TRANSFORM( geom IN SDO_GEOMETRY, use_plan IN TFM_PLAN ) RETURN SDO_GEOMETRY;
説明
座標系(SRIDまたは名前で指定)を使用してジオメトリ表現を変換します。
変換にユースケースまたは変換計画を関連付けることもできます。
パラメータ
他の座標系を使用して表現を変換するジオメトリを指定します。入力ジオメトリには、NULL以外の有効なSRID(SDO_COORD_REF_SYS表のSRID列の値)を指定する必要があります(「SDO_COORD_REF_SYS表」を参照)。
変換に使用する座標系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値である必要があります。
変換に使用する座標系の名前を指定します。この値は、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のCOORD_REF_SYS_NAME列の正確に指定された値である必要があります。
この変換に関連付けるユースケースの名前を指定します。文字列USE_SPHERICAL
を指定すると、変換は楕円体の計算ではなく球体の計算を使用するので、対応するGoogle Mapsおよびその他のサード・パーティのツールは球体の計算に基づいた投影を使用することになります。ユースケースの説明は、「EPSGモデルとSpatial and Graph」を参照してください。Google Mapsに関する考慮事項は「Google Mapsに関する考慮事項」を参照してください。
変換計画を指定します。TFM_PLANオブジェクト型の詳細は、「TFM_PLANオブジェクト型」を参照してください。
使用上の注意
変換は、2つの異なる地形参照座標系間または2つの異なるローカル座標系間のみで実行できます。
使用する座標系の種類に関係なく、円および円弧の変換はサポートされていません。
geom
、to_srid
またはto_srname
が無効な場合は例外が発生します。このファンクションに有効なgeom
は、その定義にSDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値と一致するSRIDの値が含まれている必要があります。
例
次の例では、cola_c
ジオメトリを、SRID値8199を使用する表現に変換します。(例では、「座標系変換の簡単な例」の例の定義を使用しています。)
-- Return the transformation of cola_c using to_srid 8199 -- ('Longitude / Latitude (Arc 1950)') SELECT c.name, SDO_CS.TRANSFORM(c.shape, 8199) FROM cola_markets_cs c WHERE c.name = 'cola_c'; NAME -------------------------------- SDO_CS.TRANSFORM(C.SHAPE,8199)(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM -------------------------------------------------------------------------------- cola_c SDO_GEOMETRY(2003, 8199, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR AY(3.00074114, 3.00291482, 6.00067068, 3.00291287, 6.0006723, 5.00307625, 4.0007 1961, 5.00307838, 3.00074114, 3.00291482)) -- Same as preceding, but using to_srname parameter. SELECT c.name, SDO_CS.TRANSFORM(c.shape, 'Longitude / Latitude (Arc 1950)') FROM cola_markets_cs c WHERE c.name = 'cola_c'; NAME -------------------------------- SDO_CS.TRANSFORM(C.SHAPE,'LONGITUDE/LATITUDE(ARC1950)')(SDO_GTYPE, SDO_SRID, SDO -------------------------------------------------------------------------------- cola_c SDO_GEOMETRY(2003, 8199, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR AY(3.00074114, 3.00291482, 6.00067068, 3.00291287, 6.0006723, 5.00307625, 4.0007 1961, 5.00307838, 3.00074114, 3.00291482))