プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

20.28 SDO_CS.TRANSFORM

書式

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または名前で指定)を使用してジオメトリ表現を変換します。

変換にユースケースまたは変換計画を関連付けることもできます。

パラメータ

geom

他の座標系を使用して表現を変換するジオメトリを指定します。入力ジオメトリには、NULL以外の有効なSRID(SDO_COORD_REF_SYS表のSRID列の値)を指定する必要があります(「SDO_COORD_REF_SYS表」を参照)。

to_srid

変換に使用する座標系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値である必要があります。

to_srname

変換に使用する座標系の名前を指定します。この値は、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のCOORD_REF_SYS_NAME列の正確に指定された値である必要があります。

use_case

この変換に関連付けるユースケースの名前を指定します。文字列USE_SPHERICALを指定すると、変換は楕円体の計算ではなく球体の計算を使用するので、対応するGoogle Mapsおよびその他のサード・パーティのツールは球体の計算に基づいた投影を使用することになります。ユースケースの説明は、「EPSGモデルとSpatial and Graph」を参照してください。Google Mapsに関する考慮事項は「Google Mapsに関する考慮事項」を参照してください。

use_plan

変換計画を指定します。TFM_PLANオブジェクト型の詳細は、「TFM_PLANオブジェクト型」を参照してください。

使用上の注意

変換は、2つの異なる地形参照座標系間または2つの異なるローカル座標系間のみで実行できます。

使用する座標系の種類に関係なく、円および円弧の変換はサポートされていません。

geomto_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))