22 SDO_CSパッケージ(座標系変換)

MDSYS.SDO_CSパッケージには、座標系で使用するサブプログラムが含まれます。

単一のジオメトリまたはジオメトリの全レイヤー(表で指定した列のすべてのジオメトリ)に対して明示的な座標変換を実行できます。

この章で説明するサブプログラムを使用する場合は、座標系の概念を理解しておく必要があります(「座標系」および「座標系(空間参照システム)」を参照)。

この章では、これらのサブプログラムのリファレンス情報をアルファベット順に説明します。

22.1 SDO_CS.ADD_PREFERENCE_FOR_OP

構文

SDO_CS.ADD_PREFERENCE_FOR_OP(
     op_id       IN NUMBER, 
     source_crs  IN NUMBER DEFAULT NULL, 
     target_crs  IN NUMBER DEFAULT NULL, 
     use_case    IN VARCHAR2 DEFAULT NULL);

説明

ソース座標系とターゲット座標系の間での操作のプリファレンスを追加します。

パラメータ

op_id

操作のID番号を指定します。この値は、SDO_COORD_OPS表(「SDO_COORD_OPS表」を参照)のCOORD_OP_ID列の値である必要があります。

source_crs

ソース座標参照系のSRIDを指定します。この値は、NULLまたはSDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値である必要があります。

target_crs

ターゲット座標参照系のSRIDを指定します。この値は、NULLまたはSDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値である必要があります。

use_case

このプリファレンスに関連付けるユースケースの名前を指定します。この値は、NULLまたはSDO_PREFERRED_OPS_USER表(「SDO_PREFERRED_OPS_USER表」を参照)のUSE_CASE列の値である必要があります。

使用上のノート

use_caseがNULLの場合、この操作に関連付けられた変換計画はシステム全体のプリファレンスになり、行(逆の操作が存在する場合は2つの行)がSDO_PREFERRED_OPS_SYSTEM表(「SDO_PREFERRED_OPS_SYSTEM表」を参照)に追加されます。use_caseがNULL以外の場合、この操作に関連付けられた変換計画は指定したユースケースに関連するプリファレンスになり、行(逆の操作が存在する場合は2つの行)がSDO_PREFERRED_OPS_USER表(「SDO_PREFERRED_OPS_USER表」を参照)に追加されます。

連結操作を作成して、システム全体または指定したユースケースのいずれかで優先させるには、SDO_CS.CREATE_PREF_CONCATENATED_OP簡易プロシージャを使用します。

ソース座標系とターゲット座標系の間での操作のプリファレンスを取り消すには、SDO_CS.REVOKE_PREFERENCE_FOR_OPプロシージャを使用します。

次の例では、変換にユースケースuse_case_Bが指定されている場合に、SRID 4301からSRID 4326への変換で使用する操作19977のプリファレンスを追加します。

EXECUTE SDO_CS.ADD_PREFERENCE_FOR_OP(19977, 4301, 4326, 'use_case_B');

22.2 SDO_CS.CONVERT_3D_SRID_TO_2D

構文

SDO_CS.CONVERT_3D_SRID_TO_2D(
     srid3d  IN NUMBER) RETURN NUMBER;

説明

3次元のSRID値を2次元のSRID値に変換します。

パラメータ

srid_3d

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

使用上のノート

ノート:

SDO_CS.CONVERT_3D_SRID_TO_2Dファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでOracle JVMが有効になっている場合にのみサポートされます。Oracle JVMを有効にするには、Oracle Autonomous Databaseサーバーレスの使用Oracle Javaの使用で詳細を参照してください。

このファンクションは、入力された座標参照系に対応する機能的に同等の2次元の座標参照系のSRID値を戻します。

  • 複合3D SRIDが入力された場合、対応する2次元のSRIDは1つのみとなり、それが戻されます。

  • 地理3D SRIDが入力された場合、対応する2次元のSRIDは複数ある可能性があり、そのいずれかが戻されます。

  • 2次元のSRIDが入力された場合、それが戻されます。

3次元の座標参照系のサポートの詳細は、「3次元の座標参照系のサポート」を参照してください。

この例では、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)にリストされた各座標参照系の同等の2次元のSRIDを戻します。その表の2D SRID値に対しては、ファンクションは既存の値を戻します。

SELECT
    crs.srid "nD SRID",
    crs.coord_ref_sys_kind "nD Type",
    sdo_cs.convert_3d_srid_to_2d(crs.srid) "2D SRID",
    (SELECT
        coord_ref_sys_kind
      FROM
        sdo_coord_ref_sys crs2
      WHERE
        crs2.srid = sdo_cs.convert_3d_srid_to_2d(crs.srid)
    ) "2D Type"
  FROM sdo_coord_ref_sys crs
  ORDER BY crs.coord_ref_sys_kind,crs.srid;

   nD SRID nD Type                     2D SRID 2D Type
---------- ------------------------ ---------- ------------------------
      4097 COMPOUND                       4093 PROJECTED
      4098 COMPOUND                       4094 PROJECTED
      4099 COMPOUND                       4095 PROJECTED
      …    …                              …    …
      7400 COMPOUND                       4807 GEOGRAPHIC2D
      …    …                              …    …
      5800 ENGINEERING                    5800 ENGINEERING
      …    …                              …    …
      4000 GEOCENTRIC
      …    …                              …    …
      4326 GEOGRAPHIC2D                   4326 GEOGRAPHIC2D
      …    …                              …    …
      4327 GEOGRAPHIC3D                   4326 GEOGRAPHIC2D
      …    …                              …    …
     27700 PROJECTED                     27700 PROJECTED
      …    …                              …    …
      3855 VERTICAL                       3855 VERTICAL
      …    …                              …    …

22.3 SDO_CS.CONVERT_NADCON_TO_XML

構文

SDO_CS.CONVERT_NADCON_TO_XML(
     laa_clob  IN CLOB, 
     loa_clob  IN CLOB, 
     xml_grid  OUT XMLTYPE );

説明

ASCII形式のNADCON (North American Datum Conversion)グリッドをOracle Spatial and Graph XML表現に変換します。

パラメータ

laa_clob

CLOBオブジェクトにあるNADCONグリッドの緯度の値を指定します。

loa_clob

CLOBオブジェクトにあるNADCONグリッドの経度の値を指定します。

xml_grid

NADCONグリッドのOracle Spatial and Graph XML表現を含む出力XML文書を指定します。

使用上のノート

Oracle Spatial and Graph XML表現をNADCONグリッドに変換するには、SDO_CS.CONVERT_XML_TO_NADCONプロシージャを使用します。

次の例では、ASCII形式のNADCONグリッドをOracle Spatial and Graph XML表現に変換し、結果として戻されるXML表現をNADCON ASCII表現に変換して、戻されるASCII表現を表示します。(出力の一部のみを示します。)

set lines 32000
set long 2000000000
 
DECLARE
  laa       CLOB;
  loa       CLOB;
  xml       XMLTYPE;
  laa_file  BFILE;
  loa_file  BFILE;
BEGIN
  laa_file := BFILENAME('MY_WORK_DIR', 'samplenadcon.laa');
  loa_file := BFILENAME('MY_WORK_DIR', 'samplenadcon.loa');
  DBMS_LOB.OPEN(laa_file, DBMS_LOB.LOB_READONLY);
  DBMS_LOB.OPEN(loa_file, DBMS_LOB.LOB_READONLY);
 
  DBMS_LOB.CREATETEMPORARY(laa, TRUE, DBMS_LOB.SESSION);
  DBMS_LOB.CREATETEMPORARY(loa, TRUE, DBMS_LOB.SESSION);
  DBMS_LOB.OPEN(laa, DBMS_LOB.LOB_READWRITE);
  DBMS_LOB.OPEN(loa, DBMS_LOB.LOB_READWRITE);
  DBMS_LOB.LOADFROMFILE(laa, laa_file, DBMS_LOB.LOBMAXSIZE);
  DBMS_LOB.LOADFROMFILE(loa, loa_file, DBMS_LOB.LOBMAXSIZE);
  DBMS_LOB.CLOSE(laa);
  DBMS_LOB.CLOSE(loa);
  DBMS_LOB.CLOSE(laa_file);
  DBMS_LOB.CLOSE(loa_file);
 
  SDO_CS.convert_NADCON_to_XML(laa, loa, xml);
  SDO_CS.convert_XML_to_NADCON(xml, laa, loa);
  DBMS_OUTPUT.PUT_LINE(SUBSTR(laa, 1, 32000));
  DBMS_OUTPUT.PUT_LINE(SUBSTR(loa, 1, 32000));
END;
/
NADCON EXTRACTED REGION                                 NADGRD  
  33  49   1  -107.00000      .25000    25.00000      .25000      .00000
     .006731     .006444     .006208     .006036     .005935     .005904
     .005932     .006002     .006092     .006174     .006218     .006198
     .006087     .005867     .005522     .005045     .004432     .003688
     .002818     .001836     .000759    -.000385    -.001559    -.002704
. . .
NADCON EXTRACTED REGION                                 NADGRD  
  33  49   1  -107.00000      .25000    25.00000      .25000      .00000
     .008509     .007147     .005756     .004331     .002879     .001410
    -.000060    -.001507    -.002904    -.004222    -.005431    -.006498
    -.007395    -.008095    -.008579    -.008832    -.008848    -.008632
    -.008200    -.007577    -.006800    -.005911    -.004957    -.003974
. . .

22.4 SDO_CS.CONVERT_NTV2_TO_XML

構文

SDO_CS.CONVERT_NTV2_TO_XML(
     ntv2_clob IN CLOB, 
     xml_grid  OUT XMLTYPE );

説明

ASCII形式のNTv2 (National Transformation Version 2)グリッドをOracle Spatial and Graph XML表現に変換します。

パラメータ

ntv2_clob

CLOBオブジェクトのNTv2グリッド値を指定します。

xml_grid

NTv2グリッドのOracle Spatial and Graph XML表現を含む出力XML文書を指定します。

使用上のノート

Oracle Spatial and Graph XML表現をNTv2グリッドに変換するには、SDO_CS.CONVERT_XML_TO_NTV2プロシージャを使用します。

次の例では、ASCII形式のNTv2グリッドをOracle Spatial and Graph XML表現に変換し、結果として戻されるXML表現をNTv2 ASCII表現に変換して、戻されるASCII表現を表示します。(出力の一部のみを示します。)

set lines 32000
set long 2000000000
 
DECLARE
  ntv2      CLOB;
  xml       XMLTYPE;
  ntv2_file BFILE;
BEGIN
  ntv2_file := BFILENAME('MY_WORK_DIR', 'samplentv2.gsa');
  DBMS_LOB.OPEN(ntv2_file, DBMS_LOB.LOB_READONLY);
 
  DBMS_LOB.CREATETEMPORARY(ntv2, TRUE, DBMS_LOB.SESSION);
  DBMS_LOB.OPEN(ntv2, DBMS_LOB.LOB_READWRITE);
  DBMS_LOB.LOADFROMFILE(ntv2, ntv2_file, DBMS_LOB.LOBMAXSIZE);
  DBMS_LOB.CLOSE(ntv2);
  DBMS_LOB.CLOSE(ntv2_file);
 
  SDO_CS.convert_NTv2_to_XML(ntv2, xml);
  SDO_CS.convert_XML_to_NTv2(xml, ntv2);
  DBMS_OUTPUT.PUT_LINE(SUBSTR(ntv2, 1, 32000));
END;
/
NUM_OREC 11
NUM_SREC 11
NUM_FILE  2
GS_TYPE SECONDS 
VERSION NTv2.0  
DATUM_F NAD27   
DATUM_T NAD83   
MAJOR_F  6378206.400
MINOR_F  6356583.800
MAJOR_T  6378137.000
MINOR_T  6356752.314
SUB_NAMEALbanff 
PARENT  NONE    
CREATED 95-06-29
UPDATED 95-07-04
S_LAT     183900.000000
N_LAT     184500.000000
E_LONG    415800.000000
W_LONG    416100.000000
LAT_INC       30.000000
LONG_INC      30.000000
GS_COUNT   231
  0.084020  3.737300  0.005000  0.008000
  0.083029  3.738740  0.017000  0.011000
  0.082038  3.740180  0.029000  0.015000
. . .

22.5 SDO_CS.CONVERT_XML_TO_NADCON

構文

SDO_CS.CONVERT_XML_TO_NADCON(
     xml_grid  IN XMLTYPE, 
     laa_clob  OUT CLOB, 
     loa_clob  OUT CLOB);

説明

NADCON (North American Datum Conversion)グリッドのOracle Spatial and Graph XML表現をNADCON ASCII形式に変換します。

パラメータ

xml_grid

NADCONグリッドのOracle Spatial and Graph XML表現を含むXML文書を指定します。

laa_clob

NADCONグリッドの緯度の値を含む出力CLOBオブジェクトを指定します。

loa_clob

NADCONグリッドの経度の値を含む出力CLOBオブジェクトを指定します。

使用上のノート

ASCII形式のNADCONグリッドをOracle Spatial and Graph XML表現に変換するには、SDO_CS.CONVERT_NADCON_TO_XMLプロシージャを使用します。

次の例では、ASCII形式のNADCONグリッドをOracle Spatial and Graph XML表現に変換し、結果として戻されるXML表現をNADCON ASCII表現に変換して、戻されるASCII表現を表示します。(出力の一部のみを示します。)

set lines 32000
set long 2000000000
 
DECLARE
  laa       CLOB;
  loa       CLOB;
  xml       XMLTYPE;
  laa_file  BFILE;
  loa_file  BFILE;
BEGIN
  laa_file := BFILENAME('MY_WORK_DIR', 'samplenadcon.laa');
  loa_file := BFILENAME('MY_WORK_DIR', 'samplenadcon.loa');
  DBMS_LOB.OPEN(laa_file, DBMS_LOB.LOB_READONLY);
  DBMS_LOB.OPEN(loa_file, DBMS_LOB.LOB_READONLY);
 
  DBMS_LOB.CREATETEMPORARY(laa, TRUE, DBMS_LOB.SESSION);
  DBMS_LOB.CREATETEMPORARY(loa, TRUE, DBMS_LOB.SESSION);
  DBMS_LOB.OPEN(laa, DBMS_LOB.LOB_READWRITE);
  DBMS_LOB.OPEN(loa, DBMS_LOB.LOB_READWRITE);
  DBMS_LOB.LOADFROMFILE(laa, laa_file, DBMS_LOB.LOBMAXSIZE);
  DBMS_LOB.LOADFROMFILE(loa, loa_file, DBMS_LOB.LOBMAXSIZE);
  DBMS_LOB.CLOSE(laa);
  DBMS_LOB.CLOSE(loa);
  DBMS_LOB.CLOSE(laa_file);
  DBMS_LOB.CLOSE(loa_file);
 
  SDO_CS.convert_NADCON_to_XML(laa, loa, xml);
  SDO_CS.convert_XML_to_NADCON(xml, laa, loa);
  DBMS_OUTPUT.PUT_LINE(SUBSTR(laa, 1, 32000));
  DBMS_OUTPUT.PUT_LINE(SUBSTR(loa, 1, 32000));
END;
/
NADCON EXTRACTED REGION                                 NADGRD  
  33  49   1  -107.00000      .25000    25.00000      .25000      .00000
     .006731     .006444     .006208     .006036     .005935     .005904
     .005932     .006002     .006092     .006174     .006218     .006198
     .006087     .005867     .005522     .005045     .004432     .003688
     .002818     .001836     .000759    -.000385    -.001559    -.002704
. . .
NADCON EXTRACTED REGION                                 NADGRD  
  33  49   1  -107.00000      .25000    25.00000      .25000      .00000
     .008509     .007147     .005756     .004331     .002879     .001410
    -.000060    -.001507    -.002904    -.004222    -.005431    -.006498
    -.007395    -.008095    -.008579    -.008832    -.008848    -.008632
    -.008200    -.007577    -.006800    -.005911    -.004957    -.003974
. . .

22.6 SDO_CS.CONVERT_XML_TO_NTV2

構文

SDO_CS.CONVERT_XML_TO_NTV2(
     xml_grid  IN XMLTYPE, 
     ntv2_clob OUT CLOB);

説明

NTv2 (National Transformation Version 2)グリッドのOracle Spatial and Graph XML表現をNTv2 ASCII形式に変換します。

パラメータ

xml_grid

NTv2グリッドのOracle Spatial and Graph XML表現を含むXML文書を指定します。

ntv2_clob

NTv2グリッドの値を含む出力CLOBオブジェクトを指定します。

使用上のノート

ASCII形式のNTv2グリッドをOracle Spatial and Graph XML表現に変換するには、SDO_CS.CONVERT_NTV2_TO_XMLプロシージャを使用します。

次の例では、ASCII形式のNTv2グリッドをOracle Spatial and Graph XML表現に変換し、結果として戻されるXML表現をNTv2 ASCII表現に変換して、戻されるASCII表現を表示します。(出力の一部のみを示します。)

set lines 32000
set long 2000000000
 
DECLARE
  ntv2      CLOB;
  xml       XMLTYPE;
  ntv2_file BFILE;
BEGIN
  ntv2_file := BFILENAME('MY_WORK_DIR', 'samplentv2.gsa');
  DBMS_LOB.OPEN(ntv2_file, DBMS_LOB.LOB_READONLY);
 
  DBMS_LOB.CREATETEMPORARY(ntv2, TRUE, DBMS_LOB.SESSION);
  DBMS_LOB.OPEN(ntv2, DBMS_LOB.LOB_READWRITE);
  DBMS_LOB.LOADFROMFILE(ntv2, ntv2_file, DBMS_LOB.LOBMAXSIZE);
  DBMS_LOB.CLOSE(ntv2);
  DBMS_LOB.CLOSE(ntv2_file);
 
  SDO_CS.convert_NTv2_to_XML(ntv2, xml);
  SDO_CS.convert_XML_to_NTv2(xml, ntv2);
  DBMS_OUTPUT.PUT_LINE(SUBSTR(ntv2, 1, 32000));
END;
/
NUM_OREC 11
NUM_SREC 11
NUM_FILE  2
GS_TYPE SECONDS 
VERSION NTv2.0  
DATUM_F NAD27   
DATUM_T NAD83   
MAJOR_F  6378206.400
MINOR_F  6356583.800
MAJOR_T  6378137.000
MINOR_T  6356752.314
SUB_NAMEALbanff 
PARENT  NONE    
CREATED 95-06-29
UPDATED 95-07-04
S_LAT     183900.000000
N_LAT     184500.000000
E_LONG    415800.000000
W_LONG    416100.000000
LAT_INC       30.000000
LONG_INC      30.000000
GS_COUNT   231
  0.084020  3.737300  0.005000  0.008000
  0.083029  3.738740  0.017000  0.011000
  0.082038  3.740180  0.029000  0.015000
. . .

22.7 SDO_CS.CREATE_CONCATENATED_OP

構文

SDO_CS.CREATE_CONCATENATED_OP(
     op_id    IN NUMBER, 
     op_name  IN VARCHAR2, 
     use_plan IN TFM_PLAN);

説明

連結操作を作成します。

パラメータ

op_id

連結操作のID番号を指定します。

op_name

連結操作に関連付ける名前を指定します。

use_plan

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

使用上のノート

連結操作は、2つ以上の基本操作を連結(連鎖)したものです。

連結操作を作成して、システム全体または指定したユースケースのいずれかで優先させるには、SDO_CS.CREATE_PREF_CONCATENATED_OP簡易プロシージャを使用します。

次の例では、操作IDが2999で、CONCATENATED_OPERATION_2999という名前の連結操作を作成します。

DECLARE
BEGIN
SDO_CS.CREATE_CONCATENATED_OP(
  2999,
  'CONCATENATED_OPERATION_2999',
  TFM_PLAN(SDO_TFM_CHAIN(4242, 19910, 24200, 1000000000, 24200)));
END;
/

22.8 SDO_CS.CREATE_OBVIOUS_EPSG_RULES

構文

SDO_CS.CREATE_OBVIOUS_EPSG_RULES(
     use_case  IN VARCHAR2 DEFAULT NULL);

説明

特定の変換で適用するEPSGルールの基本セットを作成します。

パラメータ

use_case

作成するEPSGルールのアプリケーションに関連付けるユースケースの名前を指定します。この値は、SDO_PREFERRED_OPS_USER表(「SDO_PREFERRED_OPS_USER表」を参照)のUSE_CASE列の値である必要があります。

使用上のノート

このプロシージャでは、特定の座標参照系間で実行する主要なEPSG定義の変換ルールを作成します。一部の座標参照系間の変換では、EPSGで適用するルールがすでに指定されている場合があります。また、座標参照系間の特定の変換で、EPSGルールがデフォルトのOracle Spatial and Graphルールと異なる場合があります。このような場合、このプロシージャを実行すると、EPSGルールが適用されます。このプロシージャを実行しない場合は、デフォルトのSpatial and Graphルールが使用されます。

このプロシージャでは、複数の行をSDO_PREFERRED_OPS_SYSTEM表(「SDO_PREFERRED_OPS_SYSTEM表」を参照)に挿入します。

このプロシージャで作成したEPSGルールを削除して、すべてのケースでデフォルトのSpatial and Graphルールを使用するようにするには、SDO_CS.DELETE_ALL_EPSG_RULESプロシージャを使用します。

次の例では、特定の変換で適用するEPSGルールの基本セットを作成します。

EXECUTE SDO_CS.CREATE_OBVIOUS_EPSG_RULES;

22.9 SDO_CS.CREATE_PREF_CONCATENATED_OP

構文

SDO_CS.CREATE_PREF_CONCATENATED_OP(
     op_id    IN NUMBER, 
     op_name  IN VARCHAR2, 
     use_plan IN TFM_PLAN, 
     use_case IN VARCHAR2 DEFAULT NULL);

説明

連結操作を作成し、変換計画に関連付け、システム全体または指定したユースケースのいずれかで優先させます。

パラメータ

op_id

作成する連結操作のID番号を指定します。

op_name

連結操作に関連付ける名前を指定します。

use_plan

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

use_case

優先させるこの連結操作を適用するユースケースを指定します。この値は、NULLまたはSDO_PREFERRED_OPS_USER表(「SDO_PREFERRED_OPS_USER表」を参照)のUSE_CASE列の値である必要があります。

使用上のノート

この簡易プロシージャは、SDO_CS.CREATE_CONCATENATED_OPSDO_CS.ADD_PREFERENCE_FOR_OPのプロシージャの操作を結合します。

連結操作は、2つ以上の基本操作を連結(連鎖)したものです。

use_caseがNULLの場合、この操作に関連付けられた変換計画はシステム全体のプリファレンスになり、行(逆の操作が存在する場合は2つの行)がSDO_PREFERRED_OPS_SYSTEM表(「SDO_PREFERRED_OPS_SYSTEM表」を参照)に追加されます。use_caseがNULL以外の場合、この操作に関連付けられた変換計画は指定したユースケースに関連するプリファレンスになり、行(逆の操作が存在する場合は2つの行)がSDO_PREFERRED_OPS_USER表(「SDO_PREFERRED_OPS_USER表」を参照)に追加されます。

システム全体または指定したユースケースのいずれでも優先させずに連結を作成するには、SDO_CS.CREATE_CONCATENATED_OPプロシージャを使用します。

連結操作を削除するには、SDO_CS.DELETE_OPプロシージャを使用します。

次の例では、操作IDが300で、MY_CONCATENATION_OPERATIONという名前の連結操作を作成し、この操作が使用される場合に、(use_caseがNULLのため)すべてのケースで、指定した変換計画をSpatial and Graphが使用するようにします。

DECLARE
BEGIN
SDO_CS.CREATE_PREF_CONCATENATED_OP(
  300,
  'MY_CONCATENATED_OPERATION',
  TFM_PLAN(SDO_TFM_CHAIN(4242, 19910, 24200, 1000000000, 24200)),
  NULL);
END;
/

22.10 SDO_CS.DELETE_ALL_EPSG_RULES

構文

SDO_CS.DELETE_ALL_EPSG_RULES(
     use_case  IN VARCHAR2 DEFAULT NULL);

説明

特定の変換で適用するEPSGルールの基本セットを削除します。

パラメータ

use_case

作成するEPSGルールのアプリケーションに関連付けるユースケースの名前を指定します。SDO_CS.CREATE_OBVIOUS_EPSG_RULESプロシージャがコールされた場合、use_caseパラメータ値(NULLまたは指定した値のいずれか)に使用した値と一致する必要があります。

使用上のノート

このプロシージャでは、SDO_CS.CREATE_OBVIOUS_EPSG_RULESプロシージャで以前に作成したEPSGルールを削除し、すべてのケースでデフォルトのSpatial and Graphルールを使用するようにします。(詳細は、SDO_CS.CREATE_OBVIOUS_EPSG_RULESプロシージャの「使用上のノート」を参照してください。)

use_caseがNULLの場合、このプロシージャはSDO_PREFERRED_OPS_SYSTEM表(「SDO_PREFERRED_OPS_SYSTEM表」を参照)からすべての行を削除します。use_caseがNULL以外の場合、このプロシージャはSDO_PREFERRED_OPS_USER表(「SDO_PREFERRED_OPS_USER表」を参照)から、指定したユースケースに関連付けられた行を削除します。

次の例では、特定の変換で適用するEPSGルールの基本セットを削除します。

EXECUTE SDO_CS.DELETE_ALL_EPSG_RULES;

22.11 SDO_CS.DELETE_OP

構文

SDO_CS.DELETE_OP(
     op_id  IN NUMBER);

説明

連結操作を削除します。

パラメータ

op_id

削除する操作のID番号を指定します。

使用上のノート

連結操作を作成して、システム全体または指定したユースケースのみで優先させるには、SDO_CS.CREATE_CONCATENATED_OPプロシージャを使用します。

次の例では、ID番号が300の操作を削除します。

EXECUTE SDO_CS.DELETE_OP(300);

22.12 SDO_CS.DETERMINE_CHAIN

構文

SDO_CS.DETERMINE_CHAIN(
     transient_rule_set IN SDO_TRANSIENT_RULE_SET, 
     use_case           IN VARCHAR2, 
     source_srid        IN NUMBER, 
     target_srid        IN NUMBER) RETURN TFM_PLAN;

説明

システムのルール・セットに基づいて、座標参照系間の変換で使用する問合せの連鎖を戻します。

パラメータ

transient_rule_set

変換で使用するルール・セットを指定します。NULL値を指定すると、Oracleシステムのルール・セットが使用されます。

use_case

問合せの連鎖を決定するユースケースを指定します。この値は、NULL値またはSDO_PREFERRED_OPS_USER表(「SDO_PREFERRED_OPS_USER表」を参照)のUSE_CASE列の値である必要があります。

source_srid

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

target_srid

ターゲット座標参照系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値である必要があります。

使用上のノート

このファンクションは、TFM_PLAN型のオブジェクトを戻します(「TFM_PLANオブジェクト型」を参照)。

transient_rule_setパラメータはSDO_TRANSIENT_RULE_SET型で、次のように定義されています。

CREATE TYPE sdo_transient_rule_set AS OBJECT (
  source_srid  NUMBER,
  target_srid  NUMBER,
  tfm          NUMBER);

次の例では、システムのルール・セットに基づいて問合せの連鎖を戻します。

SELECT MDSYS.SDO_CS.DETERMINE_CHAIN(NULL, NULL, 4804, 4257) FROM DUAL;
 
MDSYS.SDO_CS.DETERMINE_CHAIN(NULL,NULL,4804,4257)(THE_PLAN)                     
--------------------------------------------------------------------------------
TFM_PLAN(SDO_TFM_CHAIN(4804, -2, 4257))

次の例では、SRID 4804からSRID 4257への変換用に指定した連鎖を持つ、優先する連結操作(操作ID 300)を作成し、DETERMINE_CHAINファンクションをコールして異なる結果を戻します。(この例で作成した操作は実用的ではありません。参考用として作成されたものです。)

CALL SDO_CS.CREATE_PREF_CONCATENATED_OP(
    300,
    'CONCATENATED OPERATION',
    TFM_PLAN(
      SDO_TFM_CHAIN(
                    4804,
        1000000001, 4804,
        1000000002, 4804,
        1000000001, 4804,
        1000000001, 4804,
        1000000002, 4804,
        1000000002, 4804,
        1000000001, 4804,
        1000000001, 4804,
        1000000001, 4804,
        1000000002, 4804,
        1000000002, 4804,
        1000000002, 4257)),
    NULL);
 
SELECT MDSYS.SDO_CS.DETERMINE_CHAIN(NULL, NULL, 4804, 4257) FROM DUAL;
 
MDSYS.SDO_CS.DETERMINE_CHAIN(NULL,NULL,4804,4257)(THE_PLAN)                     
--------------------------------------------------------------------------------
TFM_PLAN(SDO_TFM_CHAIN(4804, 300, 4257))

22.13 SDO_CS.DETERMINE_DEFAULT_CHAIN

構文

SDO_CS.DETERMINE_DEFAULT_CHAIN(
     source_srid  IN NUMBER, 
     target_srid  IN NUMBER) RETURN SDO_SRID_CHAIN;

説明

座標参照系間の変換で使用するSRID値のデフォルトの連鎖を戻します。

パラメータ

source_srid

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

target_srid

ターゲット座標参照系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値である必要があります。

使用上のノート

このファンクションは、VARRAY(1048576) OF NUMBERとして定義されるSDO_SRID_CHAIN型のオブジェクトを戻します。

次の例では、SRID 4804からSRID 4257への変換で使用するSRID値のデフォルトの連鎖を戻します。

SELECT MDSYS.SDO_CS.DETERMINE_DEFAULT_CHAIN(4804, 4257) FROM DUAL;
 
MDSYS.SDO_CS.DETERMINE_DEFAULT_CHAIN(4804,4257)                                 
--------------------------------------------------------------------------------
SDO_SRID_CHAIN(NULL, 4804, 4257, NULL)

22.14 SDO_CS.FIND_GEOG_CRS

構文

SDO_CS.FIND_GEOG_CRS(
     reference_srid  IN NUMBER, 
     is_legacy       IN VARCHAR2, 
     max_rel_num_difference IN NUMBER DEFAULT 0.000001) RETURN SDO_SRID_LIST;

説明

指定した参照SRID値を持つ座標参照系と同じwell-knownテキスト(WKT)数値を持つ測地(地理)座標参照系のSRID値を戻します。

パラメータ

reference_srid

同じWKT数値を持つ他のすべての測地座標参照系を検索する座標参照系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値である必要があります。

is_legacy

TRUEでは、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)でIS_LEGACY列の値がTRUEの測地座標参照系に結果を限定します。FALSEでは、SDO_COORD_REF_SYS表でIS_LEGACY列の値がFALSEの測地座標参照系に結果を限定します。このパラメータにNULL値を指定すると、結果の判断時に、SDO_COORD_REF_SYS表のIS_LEGACY列の値は無視されます。

max_rel_num_difference

投影座標参照系を一致対象にする場合、WKT値がどの程度一致する必要があるかを示す数値を指定します。デフォルト値は0.000001です。WKT項目の各数値は、参照SRIDのWKT内の対応する値と比較されるか、このファンクションで指定するパラメータのリスト内の対応する値と比較されます。すべてのケースで差がmax_rel_num_differenceの値以下の場合は、この座標参照系のSRIDが結果に含まれます。

使用上のノート

このファンクションは、VARRAY(1048576) OF NUMBERとして定義されるSDO_SRID_LIST型のオブジェクトを戻します。

well-knownテキスト(WKT)形式の詳細は、「well-knownテキスト(WKT)」を参照してください。

次の例では、is_legacyパラメータ値が結果に与える影響を示します。最初の例では、SRID値が8307の座標参照系と同じWKT数値を持つすべてのレガシー測地座標参照系のSRID値を戻します。

SELECT SDO_CS.FIND_GEOG_CRS(
  8307,
  'TRUE') FROM DUAL;

SDO_CS.FIND_GEOG_CRS(8307,'TRUE')                                               
--------------------------------------------------------------------------------
SDO_SRID_LIST(8192, 8265, 8307, 8311, 8320, 524288, 2000002, 2000006, 2000012, 2
000015, 2000023, 2000028)     

次の例では、SRID値が8307の座標参照系と同じWKT数値を持つすべての非レガシー測地座標参照系のSRID値を戻します。

SELECT SDO_CS.FIND_GEOG_CRS(
  8307,
  'FALSE') FROM DUAL;

SDO_CS.FIND_GEOG_CRS(8307,'FALSE')                                              
--------------------------------------------------------------------------------
SDO_SRID_LIST(4019, 4030, 4031, 4032, 4033, 4041, 4121, 4122, 4126, 4130, 4133, 
4140, 4141, 4148, 4151, 4152, 4163, 4166, 4167, 4170, 4171, 4172, 4173, 4176, 41
80, 4189, 4190, 4258, 4269, 4283, 4318, 4319, 4326, 4610, 4612, 4617, 4619, 4624
, 4627, 4640, 4659, 4661, 4667, 4669, 4670) 

次の例では、SRID値が8307の座標参照系と同じWKT数値を持つすべての測地座標参照系(レガシーおよび非レガシー)のSRID値を戻します。

SELECT SDO_CS.FIND_GEOG_CRS(
  8307,
  NULL) FROM DUAL;
 
SDO_CS.FIND_GEOG_CRS(8307,NULL)                                                 
--------------------------------------------------------------------------------
SDO_SRID_LIST(4019, 4030, 4031, 4032, 4033, 4041, 4121, 4122, 4126, 4130, 4133, 
4140, 4141, 4148, 4151, 4152, 4163, 4166, 4167, 4170, 4171, 4172, 4173, 4176, 41
80, 4189, 4190, 4258, 4269, 4283, 4318, 4319, 4326, 4610, 4612, 4617, 4619, 4624
, 4627, 4640, 4659, 4661, 4667, 4669, 4670, 8192, 8265, 8307, 8311, 8320, 524288
, 2000002, 2000006, 2000012, 2000015, 2000023, 2000028) 

22.15 SDO_CS.FIND_PROJ_CRS

構文

SDO_CS.FIND_PROJ_CRS(
     reference_srid          IN NUMBER, 
     is_legacy               IN VARCHAR2, 
     max_rel_num_difference  IN NUMBER DEFAULT 0.000001) RETURN SDO_SRID_LIST;

説明

指定した参照SRID値を持つ座標参照系と同じwell-knownテキスト(WKT)数値を持つ投影座標参照系のSRID値を戻します。

パラメータ

reference_srid

同じWKT数値を持つ他のすべての投影座標参照系を検索する座標参照系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値である必要があります。

is_legacy

TRUEでは、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)でIS_LEGACY列の値がTRUEの投影座標参照系に結果を限定します。FALSEでは、SDO_COORD_REF_SYS表でIS_LEGACY列の値がFALSEの投影座標参照系に結果を限定します。このパラメータにNULL値を指定すると、結果の判断時に、SDO_COORD_REF_SYS表のIS_LEGACY列の値は無視されます。

max_rel_num_difference

座標参照系を一致対象にする場合、WKT値がどの程度一致する必要があるかを示す数値を指定します。デフォルト値は0.000001です。WKT項目の各数値は、参照SRIDのWKT内の対応する値と比較されるか、このファンクションで指定するパラメータのリスト内の対応する値と比較されます。すべてのケースで差がmax_rel_num_differenceの値以下の場合は、この座標参照系のSRIDが結果に含まれます。

使用上のノート

このファンクションは、VARRAY(1048576) OF NUMBERとして定義されるSDO_SRID_LIST型のオブジェクトを戻します。

well-knownテキスト(WKT)形式の詳細は、「well-knownテキスト(WKT)」を参照してください。

次の例では、is_legacyパラメータ値が結果に与える影響を示します。最初の例では、SRID値が2007の座標参照系と同じWKT数値を持つすべてのレガシー投影座標参照系のSRID値を戻します。検索条件に一致するレガシー投影座標参照系はないため、戻される結果リストは空になります。

SELECT SDO_CS.FIND_PROJ_CRS(
  2007,
  'TRUE') FROM DUAL;
 
SDO_CS.FIND_PROJ_CRS(2007,'TRUE')                                               
--------------------------------------------------------------------------------
SDO_SRID_LIST()

次の例では、SRID値が2007の座標参照系と同じWKT数値を持つすべての非レガシー投影座標参照系のSRID値を戻します。

SELECT SDO_CS.FIND_PROJ_CRS(
  2007,
  'FALSE') FROM DUAL;
 
SDO_CS.FIND_PROJ_CRS(2007,'FALSE')                                              
--------------------------------------------------------------------------------
SDO_SRID_LIST(2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 21291)

次の例では、SRID値が2007の座標参照系と同じWKT数値を持つすべての投影座標参照系(レガシーおよび非レガシー)のSRID値を戻します。戻される結果リストは、前述の例と同じになります。

SELECT SDO_CS.FIND_PROJ_CRS(
  2007,
  NULL) FROM DUAL;
 
SDO_CS.FIND_PROJ_CRS(2007,NULL)                                                 
--------------------------------------------------------------------------------
SDO_SRID_LIST(2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 21291)

22.16 SDO_CS.FIND_SRID

構文

SDO_CS.FIND_SRID(
     srid               OUT NUMBER, 
     epsg_srid_geog     IN NUMBER DEFAULT NULL, 
     epsg_srid_proj     IN NUMBER DEFAULT NULL, 
     datum_id           IN NUMBER DEFAULT NULL, 
     pm_id              IN NUMBER DEFAULT NULL, 
     proj_method_id     IN NUMBER DEFAULT NULL, 
     coord_ref_sys_kind IN VARCHAR2 DEFAULT NULL, 
     semi_major_axis    IN NUMBER DEFAULT NULL, 
     semi_minor_axis    IN NUMBER DEFAULT NULL, 
     inv_flattening     IN NUMBER DEFAULT NULL, 
     params             IN EPSG_PARAMS DEFAULT NULL);

または

SDO_CS.FIND_SRID(
     srid               OUT NUMBER, 
     epsg_srid_geog     IN NUMBER DEFAULT NULL, 
     epsg_srid_proj     IN NUMBER DEFAULT NULL, 
     datum_id           IN NUMBER DEFAULT NULL, 
     pm_id              IN NUMBER DEFAULT NULL, 
     proj_method_id     IN NUMBER DEFAULT NULL, 
     proj_op_id         IN NUMBER DEFAULT NULL, 
     coord_ref_sys_kind IN VARCHAR2 DEFAULT NULL, 
     semi_major_axis    IN NUMBER DEFAULT NULL, 
     semi_minor_axis    IN NUMBER DEFAULT NULL, 
     inv_flattening     IN NUMBER DEFAULT NULL, 
     params             IN EPSG_PARAMS DEFAULT NULL, 
     max_rel_num_difference IN NUMBER DEFAULT 0.000001);

説明

指定した情報に一致する座標系のSRID値を検索します。

パラメータ

srid

出力パラメータ。SRID値(数値)またはNULL値を含みます(「使用上のノート」を参照)。

epsg_srid_geog

地理座標系のEPSG SRID値。このプロシージャは、coord_ref_sys_kindパラメータの値に応じて、この地理SRID値を持つ座標系の有無を確認するか、またはこのSRID値を持つ座標系に基づいて投影座標系のSRID値を検索します。

epsg_srid_proj

投影座標系のEPGS SRID値。

datum_id

データのID値。このプロシージャは、coord_ref_sys_kindパラメータの値に応じて、地理座標系または投影座標系のSRIDをこのデータに基づいて検索します。

ellipsoid_id

楕円体のID値。このプロシージャは、coord_ref_sys_kindパラメータの値に応じて、地理座標系または投影座標系のSRIDをこの楕円体に基づいて検索します。

pm_id

本初子午線のID値。このプロシージャは、coord_ref_sys_kindパラメータの値に応じて、地理座標系または投影座標系のSRIDをこの本初子午線に基づいて検索します。

proj_method_id

投影方法のID値。この投影方法に基づく投影座標系のSRIDを検索します。

proj_op_id

投影操作のID値。この投影操作に基づく投影座標系のSRIDを検索します。投影操作は、特定の投影パラメータと組み合された投影方法です。

coord_ref_sys_kind

座標系の種類またはカテゴリ。この値は、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のCOORD_REF_SYS_KIND列の文字列値である必要があります。例: GEOGRAPHIC2DおよびPROJECTED

semi_major_axis

半長径のID値。このプロシージャは、coord_ref_sys_kindパラメータの値に応じて、地理座標系または投影座標系のSRIDをこの半長径に基づいて検索します。

semi_minor_axis

半短径のID値。このプロシージャは、coord_ref_sys_kindパラメータの値に応じて、地理座標系または投影座標系のSRIDをこの半短径に基づいて検索します。

inv_flattening

逆フラット化(単位は1です)。このプロシージャは、coord_ref_sys_kindパラメータの値に応じて、地理座標系または投影座標系のSRIDをこの逆フラット化に基づいて検索します。

params

投影パラメータ。このパラメータは、投影方法に基づきます。EPSG_PARAMSタイプはVARRAY(1048576) OF EPSG_PARAMとして定義され、EPSG_PARAMタイプは(id NUMBER, val NUMBER, uom NUMBER)として定義されます。次の例に示すように、この書式にはパラメータID、値、測定単位IDの属性が含まれます。

epsg_params(
  epsg_param(8801,      0.0,    9102),
  epsg_param(8802,      9.0,    9102),
  epsg_param(8805,      0.9996, 9201),
  epsg_param(8806, 500000.0,    9001),
  epsg_param(8807,      0.0,    9001));
max_rel_num_difference

座標参照系を一致対象にする場合、WKT値がどの程度一致する必要があるかを示す数値を指定します。デフォルト値は0.000001です。WKT項目の各数値は、参照SRIDのWKT内の対応する値と比較されるか、このプロシージャで指定するパラメータのリスト内の対応する値と比較されます。すべてのケースで差がmax_rel_num_differenceの値以下の場合は、この座標参照系のSRIDが結果に含まれます。

使用上のノート

このプロシージャは、その操作結果をsrid出力パラメータに配置します。結果は、数値のSRID値またはNULL値のいずれかになります。

このプロシージャには、主に次の使用方法があります。

  • 特定のSRID値を持つ座標系が存在するかどうかを確認します。この場合、epsg_srid_geog(地理座標系の場合)またはepsg_srid_proj(投影座標系の場合)に値を指定し、有効なPL/SQL文を作成するのに十分な数のパラメータを指定します。指定した値と結果のsridパラメータの値が同じ場合は、そのSRID値を持つ座標系が存在します。結果のsridパラメータの値がNULLの場合は、そのSRID値を持つ座標系は存在しません。

  • 指定した情報に基づく座標系のSRID値を検索します。

入力パラメータで指定した基準に一致する座標系が複数ある場合も、sridパラメータには1つのSRID値のみが戻されます。この値は、一致している可能性のあるSRID値うちのいずれの値になる可能性もあり、同じ入力パラメータを指定して、後でこのプロシージャを実行しても、同じ値が得られる保証はありません。

次の例では、定義にデータID6267を使用する投影座標系のSRID値を検索します。

DECLARE
  returned_srid  NUMBER;
BEGIN
SDO_CS.FIND_SRID (
   srid               => returned_srid,
   epsg_srid_geog     => null,
   epsg_srid_proj     => null,
   datum_id           => 6267,
   ellips_id          => null,
   pm_id              => null,
   proj_method_id     => null,
   proj_op_id         => null,
   coord_ref_sys_kind => 'PROJECTED');
DBMS_OUTPUT.PUT_LINE('SRID = ' || returned_srid);
END;
/
SRID = 4267

22.17 SDO_CS.FROM_GEOHASH

構文

SDO_CS.FROM_GEOHASH(
     geohash IN SDO_VARCHAR2, 
     srid    IN NUMBER) RETURN SDO_GEOMETRY;

説明

指定したジオハッシュを表す空間ジオメトリ(SDO_GEOMETRY型)を戻します。

パラメータ

geohash

ジオメトリのジオハッシュ表現

srid

Oracle Spatialジオメトリの作成に使用する座標系(空間参照システム)。

使用上のノート

Oracle Spatialでのジオハッシュのサポートの詳細は、「ジオハッシュのサポート」を参照してください。

次の例では、指定したジオハッシュ値をSRID 4326のジオメトリに変換します。

SELECT sdo_cs.from_GeoHash('u4pruydqqvj', 4326) FROM DUAL;

SDO_GEOMETRY(2002, 4326, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARRAY(10.407439, 57.64911, 10.4074404, 57.6491113))

22.18 SDO_CS.FROM_OGC_SIMPLEFEATURE_SRS

構文

SDO_CS.FROM_OGC_SIMPLEFEATURE_SRS(
     wkt  IN VARCHAR2) RETURN VARCHAR2;

説明

well-knownテキスト文字列をTOWGS84キーワードのないOpen Geospatial Consortiumのシンプル・フィーチャ形式からTOWGS84キーワードを含む形式に変換します。

パラメータ

wkt

well-knownテキスト文字列を指定します。

使用上のノート

well-knownテキスト文字列をTOWGS84キーワードを含むOpen Geospatial Consortiumのシンプル・フィーチャ形式からTOWGS84キーワードのない形式に変換するには、SDO_CS.TO_OGC_SIMPLEFEATURE_SRSファンクションを使用します。

次の例では、well-knownテキスト文字列をTOWGS84キーワードのないOpen Geospatial Consortiumのシンプル・フィーチャ形式からTOWGS84キーワードを含む形式に変換します。

SELECT sdo_cs.from_OGC_SimpleFeature_SRS('GEOGCS [ "Longitude / Latitude (DHDN)", 
  DATUM ["", SPHEROID ["Bessel 1841", 6377397.155, 299.1528128], 
  582.000000, 105.000000, 414.000000, -1.040000, -0.350000, 3.080000, 8.300000 ], 
  PRIMEM [ "Greenwich", 0.000000 ], UNIT ["Decimal Degree", 0.01745329251994330]]') 
FROM DUAL;
 
MDSYS.SDO_CS.FROM_OGC_SIMPLEFEATURE_SRS('GEOGCS["LONGITUDE/LATITUDE(DHDN)",DATUM
--------------------------------------------------------------------------------
GEOGCS [ "Longitude / Latitude (DHDN)", DATUM ["", SPHEROID ["Bessel 1841", 6377
397.155, 299.1528128], TOWGS84[ 582.000000, 105.000000, 414.000000, -1.040000, -
0.350000, 3.080000, 8.300000]], PRIMEM [ "Greenwich", 0.000000 ], UNIT ["Decimal
 Degree", 0.01745329251994330]]

22.19 SDO_CS.FROM_USNG

構文

SDO_CS.FROM_USNG(
     usng   IN VARCHAR2, 
     srid   IN NUMBER, 
     datum  IN VARCHAR2 DEFAULT 'NAD83') RETURN SDO_GEOMETRY;

説明

U.S. National Grid形式で表される点を空間点ジオメトリ・オブジェクトに変換します。

パラメータ

usng

well-knownテキスト文字列を指定します。

srid

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

datum

点のU.S. National Grid座標がベースとするデータの名前を指定します。この値は、SDO_DATUMS表(「SDO_DATUMS表」を参照)のDATUM_NAME列の値またはNULLのいずれかである必要があります。デフォルト値はNAD83です。

使用上のノート

Oracle Spatial and GraphでサポートされるU.S. National Gridの詳細は、「U.S. National Gridのサポート」を参照してください。

空間点ジオメトリをU.S. National Grid形式で表される点に変換するには、SDO_CS.TO_USNGファンクションを使用します。

次の例では、U.S. National Grid形式で表される点を、経度/緯度座標の付いた空間ジオメトリの点オブジェクトに変換します。

-- Convert US National Grid point to SDO_GEMETRY point using SRID 4326
-- (WGS 84, longitude/latitude).
SELECT SDO_CS.FROM_USNG(
  '18SUJ2348316806479498',
  4326) FROM DUAL;
 
WGS84(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(-77.03524, 38.8894673, NULL), NULL, NULL)

22.20 SDO_CS.GENERATE_SCRIPT_FROM_SRID

構文

GENERATE_SCRIPT_FROM_SRID(
     srid          IN NUMBER, 
     offset        IN NUMBER DEFAULT 0, 
     include_units IN NUMBER DEFAULT 1) RETURN CLOB;

説明

指定されたSRID値の座標系の作成に必要なSQL文を含むCLOBオブジェクトを戻します。

パラメータ

srid

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

offset

生成されたスクリプトによって作成される座標系のSRID値に加算される数値を指定します。たとえば、SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700, 50000)と指定すると、結果スクリプトのINSERT文で、SRIDが77700 (つまり27700 + 50000)として指定されます。このようにする目的には、現在のSRIDがいずれも77700以上ではないことがわかっている場合に新しい一意のSRIDが確実に生成されるようにすることなどがあります。

デフォルトのオフセット値は0(ゼロ)です。

include_units

数値0は、生成された文に単位を含めないことを意味します。数値1 (デフォルト)は、生成された文に単位を含めることを意味します。

ほとんどの場合、デフォルト値を使用することをお薦めします。例外は(それがあるとすれば)ごくまれで、属性に非標準の単位がある場合のみです。

使用上のノート

このファンクションを使用する前に、SQL*PlusコマンドのSET LONGを使用して列出力の最大幅をバイト単位で増やす必要があります。たとえば: SET LONG 20000

出力を単に情報を表示するためでなく、それを使用して座標系の定義の変更に役立てたり、新しい定義を作成する場合は、(INSERT文などの)構文が正しくなるように出力を必要に応じて編集する必要があります。

このスクリプトは別の(ターゲット)データベースで実行することも、このファンクションを実行したデータベースで実行することもできます。どちらの場合も、問題のSRIDに関連付けられている座標系が存在する可能性があり、その場合はそのシナリオに対処するアクション(offeetパラメータの使用など)を実行できます。

標準の座標系定義を変更することはお薦めしません。

次の例では、SRID値が27700の座標系の定義に必要な文を含むCLOBオブジェクトを戻します。

SQL> SET LONG 20000

SQL> SELECT sdo_cs.GENERATE_SCRIPT_FROM_SRID(27700) FROM DUAL;

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
insert into mdsys.sdo_units_of_measure (
  UOM_ID,
  UNIT_OF_MEAS_NAME,
  SHORT_NAME,
  LEGACY_UNIT_NAME,
  UNIT_OF_MEAS_TYPE,
  TARGET_UOM_ID,
  FACTOR_B,
  FACTOR_C,
  INFORMATION_SOURCE,
  DATA_SOURCE,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  IS_LEGACY,
  LEGACY_CODE)
values (
  9001,
  'metre',
  'METRE_9001',
  'Meter',
  'length',
  9001,
  1,
  1,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  'ISO 1000.',
  'EPSG',
  'FALSE',
  NULL);

insert into mdsys.sdo_units_of_measure (
  UOM_ID,
  UNIT_OF_MEAS_NAME,
  SHORT_NAME,
  LEGACY_UNIT_NAME,
  UNIT_OF_MEAS_TYPE,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  TARGET_UOM_ID,
  FACTOR_B,
  FACTOR_C,
  INFORMATION_SOURCE,
  DATA_SOURCE,
  IS_LEGACY,
  LEGACY_CODE)
values (
  9102,
  'degree',
  'DEGREE_EPSG_9102',

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  'Decimal Degree',
  'angle',
  9101,
  3.14159265358979,
  180,
  NULL,
  'EPSG',
  'FALSE',
  NULL);

insert into mdsys.sdo_units_of_measure (

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  UOM_ID,
  UNIT_OF_MEAS_NAME,
  SHORT_NAME,
  LEGACY_UNIT_NAME,
  UNIT_OF_MEAS_TYPE,
  TARGET_UOM_ID,
  FACTOR_B,
  FACTOR_C,
  INFORMATION_SOURCE,
  DATA_SOURCE,
  IS_LEGACY,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  LEGACY_CODE)
values (
  9110,
  'sexagesimal DMS',
  'SEXAGESIMAL_DMS_EPSG_9110',
  NULL,
  'angle',
  9101,
  3.14159265358979,
  180,
  'EPSG',

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  'EPSG',
  'FALSE',
  NULL);

insert into mdsys.sdo_units_of_measure (
  UOM_ID,
  UNIT_OF_MEAS_NAME,
  SHORT_NAME,
  LEGACY_UNIT_NAME,
  UNIT_OF_MEAS_TYPE,
  TARGET_UOM_ID,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  FACTOR_B,
  FACTOR_C,
  INFORMATION_SOURCE,
  DATA_SOURCE,
  IS_LEGACY,
  LEGACY_CODE)
values (
  9122,
  'degree (supplier to define representation)',
  'DEGREE_SUPPLIER_DEFINED_9122',
  'Decimal Degree',

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  'angle',
  9101,
  3.14159265358979,
  180,
  'EPSG',
  'EPSG',
  'FALSE',
  NULL);

insert into mdsys.sdo_units_of_measure (
  UOM_ID,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  UNIT_OF_MEAS_NAME,
  SHORT_NAME,
  LEGACY_UNIT_NAME,
  UNIT_OF_MEAS_TYPE,
  TARGET_UOM_ID,
  FACTOR_B,
  FACTOR_C,
  INFORMATION_SOURCE,
  DATA_SOURCE,
  IS_LEGACY,
  LEGACY_CODE)

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
values (
  9201,
  'unity',
  'UNITY_9201',
  NULL,
  'scale',
  9201,
  1,
  1,
  NULL,
  'EPSG',

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  'FALSE',
  NULL);

insert into mdsys.sdo_coord_ops (
  COORD_OP_ID,
  COORD_OP_NAME,
  COORD_OP_TYPE,
  SOURCE_SRID,
  TARGET_SRID,
  COORD_TFM_VERSION,
  COORD_OP_VARIANT,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  COORD_OP_METHOD_ID,
  UOM_ID_SOURCE_OFFSETS,
  UOM_ID_TARGET_OFFSETS,
  INFORMATION_SOURCE,
  DATA_SOURCE,
  SHOW_OPERATION,
  IS_LEGACY,
  LEGACY_CODE,
  REVERSE_OP,
  IS_IMPLEMENTED_FORWARD,
  IS_IMPLEMENTED_REVERSE)

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
values (
  19916,
  'British National Grid (EPSG OP 19916)',
  'CONVERSION',
  NULL,
  NULL,
  NULL,
  NULL,
  9807,
  NULL,
  NULL,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  'Ordnance Survey of Great Britain.  http://www.gps.gov.uk/additionalInfo/image
s/A_guide_to_coord.pdf',
  'EPSG',
  1,
  'FALSE',
  NULL,
  1,
  1,
  1);

insert into mdsys.sdo_coord_op_param_vals (

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  COORD_OP_ID,
  COORD_OP_METHOD_ID,
  PARAMETER_ID,
  PARAMETER_VALUE,
  PARAM_VALUE_FILE_REF,
  PARAM_VALUE_FILE,
  PARAM_VALUE_XML,
  UOM_ID)
values (
  19916,
  9807,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  8801,
  49,
  NULL,
  null,
  null,
  9102);

insert into mdsys.sdo_coord_op_param_vals (
  COORD_OP_ID,
  COORD_OP_METHOD_ID,
  PARAMETER_ID,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  PARAMETER_VALUE,
  PARAM_VALUE_FILE_REF,
  PARAM_VALUE_FILE,
  PARAM_VALUE_XML,
  UOM_ID)
values (
  19916,
  9807,
  8802,
  -2,
  NULL,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  null,
  null,
  9102);

insert into mdsys.sdo_coord_op_param_vals (
  COORD_OP_ID,
  COORD_OP_METHOD_ID,
  PARAMETER_ID,
  PARAMETER_VALUE,
  PARAM_VALUE_FILE_REF,
  PARAM_VALUE_FILE,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  PARAM_VALUE_XML,
  UOM_ID)
values (
  19916,
  9807,
  8805,
  .9996012717,
  NULL,
  null,
  null,
  9201);

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------

insert into mdsys.sdo_coord_op_param_vals (
  COORD_OP_ID,
  COORD_OP_METHOD_ID,
  PARAMETER_ID,
  PARAMETER_VALUE,
  PARAM_VALUE_FILE_REF,
  PARAM_VALUE_FILE,
  PARAM_VALUE_XML,
  UOM_ID)
values (

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  19916,
  9807,
  8806,
  400000,
  NULL,
  null,
  null,
  9001);

insert into mdsys.sdo_coord_op_param_vals (
  COORD_OP_ID,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  COORD_OP_METHOD_ID,
  PARAMETER_ID,
  PARAMETER_VALUE,
  PARAM_VALUE_FILE_REF,
  PARAM_VALUE_FILE,
  PARAM_VALUE_XML,
  UOM_ID)
values (
  19916,
  9807,
  8807,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  -100000,
  NULL,
  null,
  null,
  9001);

insert into mdsys.sdo_ellipsoids (
  ELLIPSOID_ID,
  ELLIPSOID_NAME,
  SEMI_MAJOR_AXIS,
  UOM_ID,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  INV_FLATTENING,
  SEMI_MINOR_AXIS,
  INFORMATION_SOURCE,
  DATA_SOURCE,
  IS_LEGACY,
  LEGACY_CODE)
values (
  7001,
  'Airy 1830',
  6377563.396,
  9001,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  299.3249646,
  6356256.90923728512018673099343615524143,
  'Ordnance Survey of Great Britain.',
  'EPSG',
  'FALSE',
  8001);

insert into mdsys.sdo_prime_meridians (
  PRIME_MERIDIAN_ID,
  PRIME_MERIDIAN_NAME,
  GREENWICH_LONGITUDE,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  UOM_ID,
  INFORMATION_SOURCE,
  DATA_SOURCE)
values (
  8901,
  'Greenwich 8901',
  0,
  9110,
  NULL,
  'EPSG');


SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
insert into mdsys.sdo_datums (
  DATUM_ID,
  DATUM_NAME,
  DATUM_TYPE,
  ELLIPSOID_ID,
  PRIME_MERIDIAN_ID,
  INFORMATION_SOURCE,
  DATA_SOURCE,
  SHIFT_X,
  SHIFT_Y,
  SHIFT_Z,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  ROTATE_X,
  ROTATE_Y,
  ROTATE_Z,
  SCALE_ADJUST,
  IS_LEGACY,
  LEGACY_CODE)
values (
  6277,
  'OSGB 1936',
  'GEODETIC',
  7001,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  8901,
  'Ordnance Survey of Great Britain',
  'EPSG',
  446.448,
  -125.157,
  542.06,
  .15,
  .247,
  .842,
  -20.489,
  'FALSE',

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  NULL);

insert into mdsys.sdo_coord_sys (
  COORD_SYS_ID,
  COORD_SYS_NAME,
  COORD_SYS_TYPE,
  DIMENSION,
  INFORMATION_SOURCE,
  DATA_SOURCE)
values (
  6422,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  'Ellipsoidal 2D CS. Axes: latitude, longitude. Orientations: north, east.  UoM
: deg 6422',
  'ellipsoidal',
  2,
  'EPSG',
  'EPSG');

insert into mdsys.sdo_coord_axes (
  COORD_SYS_ID,
  COORD_AXIS_NAME_ID,
  COORD_AXIS_ORIENTATION,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  COORD_AXIS_ABBREVIATION,
  UOM_ID,
  "ORDER")
values (
  6422,
  9901,
  'north',
  'Lat',
  9122,
  1);


SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
insert into mdsys.sdo_coord_axes (
  COORD_SYS_ID,
  COORD_AXIS_NAME_ID,
  COORD_AXIS_ORIENTATION,
  COORD_AXIS_ABBREVIATION,
  UOM_ID,
  "ORDER")
values (
  6422,
  9902,
  'east',

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  'Long',
  9122,
  2);

insert into mdsys.sdo_coord_ref_system (
  SRID,
  COORD_REF_SYS_NAME,
  COORD_REF_SYS_KIND,
  COORD_SYS_ID,
  DATUM_ID,
  GEOG_CRS_DATUM_ID,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  SOURCE_GEOG_SRID,
  PROJECTION_CONV_ID,
  CMPD_HORIZ_SRID,
  CMPD_VERT_SRID,
  INFORMATION_SOURCE,
  DATA_SOURCE,
  IS_LEGACY,
  LEGACY_CODE,
  LEGACY_WKTEXT,
  LEGACY_CS_BOUNDS,
  IS_VALID,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  SUPPORTS_SDO_GEOMETRY)
values (
  4277,
  'OSGB 1936',
  'GEOGRAPHIC2D',
  6422,
  6277,
  6277,
  NULL,
  NULL,
  NULL,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  NULL,
  NULL,
  'EPSG',
  'FALSE',
  NULL,
  NULL,
  null,
  'TRUE',
  'TRUE');

insert into mdsys.sdo_coord_sys (

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  COORD_SYS_ID,
  COORD_SYS_NAME,
  COORD_SYS_TYPE,
  DIMENSION,
  INFORMATION_SOURCE,
  DATA_SOURCE)
values (
  4400,
  'Cartesian 2D CS.  Axes: easting, northing (E,N). Orientations: east, north.
UoM: m. 4400',
  'Cartesian',

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  2,
  'EPSG',
  'EPSG');

insert into mdsys.sdo_coord_axes (
  COORD_SYS_ID,
  COORD_AXIS_NAME_ID,
  COORD_AXIS_ORIENTATION,
  COORD_AXIS_ABBREVIATION,
  UOM_ID,
  "ORDER")

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
values (
  4400,
  9906,
  'east',
  'E',
  9001,
  1);

insert into mdsys.sdo_coord_axes (
  COORD_SYS_ID,
  COORD_AXIS_NAME_ID,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  COORD_AXIS_ORIENTATION,
  COORD_AXIS_ABBREVIATION,
  UOM_ID,
  "ORDER")
values (
  4400,
  9907,
  'north',
  'N',
  9001,
  2);

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------

insert into mdsys.sdo_coord_ref_system (
  SRID,
  COORD_REF_SYS_NAME,
  COORD_REF_SYS_KIND,
  COORD_SYS_ID,
  DATUM_ID,
  GEOG_CRS_DATUM_ID,
  SOURCE_GEOG_SRID,
  PROJECTION_CONV_ID,
  CMPD_HORIZ_SRID,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  CMPD_VERT_SRID,
  INFORMATION_SOURCE,
  DATA_SOURCE,
  IS_LEGACY,
  LEGACY_CODE,
  LEGACY_WKTEXT,
  LEGACY_CS_BOUNDS,
  IS_VALID,
  SUPPORTS_SDO_GEOMETRY)
values (
  27700,

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  'OSGB 1936 / British National Grid',
  'PROJECTED',
  4400,
  NULL,
  6277,
  4277,
  19916,
  NULL,
  NULL,
  NULL,
  'EPSG',

SDO_CS.GENERATE_SCRIPT_FROM_SRID(27700)
--------------------------------------------------------------------------------
  'FALSE',
  NULL,
  NULL,
  null,
  'TRUE',
  'TRUE');

22.21 SDO_CS.GET_EPSG_DATA_VERSION

構文

SDO_CS.GET_EPSG_DATA_VERSION() RETURN VARCHAR2;

説明

Spatial and Graphによって使用されるEPSGデータセットのバージョン番号を取得します。

パラメータ

なし。

使用上のノート

EPSGデータセットは、European Petroleum Survey Groupから提供されており、Microsoft Access 97データベース形式およびSQLスクリプトとして配布されています。

次の例では、Spatial and Graphによって使用されるEPSGデータセットのバージョン番号を取得します。

SELECT SDO_CS.GET_EPSG_DATA_VERSION FROM DUAL;
 
GET_EPSG_DATA_VERSION
-------------------------------------------------------------------------------
7.5

22.22 SDO_CS.GET_GEOHASH_CELL_HEIGHT

構文

SDO_CS.GET_GEOHASH_CELL_HEIGHT(
     geohash_length  IN NUMBER) RETURN SDO_NUMBER;

説明

指定したジオハッシュのセルの高さを戻します。

パラメータ

geohash_length

ジオハッシュの長さ。

使用上のノート

ジオハッシュの精度は、その長さによって異なります。ジオハッシュが長いほど、定義される座標セルは小さく(精度が高く)なります。セルの幅と高さをメートルで戻すことができます(WGS84と仮定)。

Oracle Spatialでのジオハッシュのサポートの詳細は、「ジオハッシュのサポート」を参照してください。

次の例では、ジオハッシュの長さが11の場合のセルの高さをメートルで戻します。

SELECT sdo_cs.get_GeoHash_cell_height(11) FROM DUAL;

                        .149

22.23 SDO_CS.GET_GEOHASH_CELL_WIDTH

構文

SDO_CS.GET_GEOHASH_CELL_WIDTH(
     geohash_length  IN NUMBER) RETURN SDO_NUMBER;

説明

指定したジオハッシュのセルの幅を戻します。

パラメータ

geohash_length

ジオハッシュの長さ。

使用上のノート

ジオハッシュの精度は、その長さによって異なります。ジオハッシュが長いほど、定義される座標セルは小さく(精度が高く)なります。セルの幅と高さをメートルで戻すことができます(WGS84と仮定)。

Oracle Spatialでのジオハッシュのサポートの詳細は、「ジオハッシュのサポート」を参照してください。

次の例では、ジオハッシュの長さが11の場合のセルの幅をメートルで戻します。

SELECT sdo_cs.get_GeoHash_cell_width(11) FROM DUAL;

                        .149

22.24 SDO_CS.LOAD_EPSG_MATRIX

構文

SDO_CS.LOAD_EPSG_MATRIX(
     op_id        IN NUMBER, 
     parameter_id IN NUMBER, 
     directory    IN VARCHAR2, 
     file_name    IN VARCHAR2);

説明

NADCON、NTv2またはVERTCON形式のEPSGマトリックスをロードします。

パラメータ

op_id

マトリックスが属するEPSG操作IDを指定します。

parameter_id

操作にNADCONなどの複数のマトリックスが含まれる場合、マトリックスを識別するEPSGパラメータIDを指定します。

directory

マトリックス・ファイル・ディレクトリの名前を指定します。

file_name

マトリックス・ファイル名を指定します。

使用上のノート

EPSGマトリックスを検証するには、SDO_CS.VALIDATE_EPSG_MATRIXファンクションを使用します。

次の例では、操作1703 ("NAD27 to WGS 84 (32)")のNTv2マトリックスをロードします。NTv2操作の場合、単一のマトリックスで十分で、パラメータID 8656に割り当てられます。

CREATE OR REPLACE DIRECTORY work_dir AS '…';
 
EXECUTE sdo_cs.load_epsg_matrix(
    1703,
    8656,
    'WORK_DIR',
    'ntv2file.asc');

22.25 SDO_CS.MAKE_2D

構文

SDO_CS.MAKE_2D(
     geom3d      IN SDO_GEOMETRY, 
     target_srid IN NUMBER DEFAULT NULL) RETURN SDO_GEOMETRY;

説明

3次元以上のジオメトリを2次元のジオメトリに変換します。

パラメータ

geom3d

3次元以上のジオメトリ・オブジェクトを指定します。

target_srid

ターゲット座標参照系のSRIDを指定します。この値は、NULLまたはSDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値である必要があります。このパラメータがNULLの場合、入力ジオメトリのSRIDに基づいてデフォルトのSRIDが使用されます。

使用上のノート

このファンクションは、入力ジオメトリの各頂点から3番目の次元値(高さ)と他の次元値(4次元以上の入力ジオメトリの場合)を削除した2次元のジオメトリ・オブジェクトを戻します。

3次元の座標参照系のサポートの詳細は、「3次元の座標参照系のサポート」を参照してください。

次の例では、3番目の次元値(高さ)をすべて削除して、3次元のジオメトリを2次元のジオメトリに変換します。(この例では、SDO_CS.MAKE_3Dファンクションの例からの出力ジオメトリを入力ジオメトリとして使用します。)

SELECT SDO_CS.MAKE_2D(SDO_GEOMETRY(3003, 8307, NULL,
 SDO_ELEM_INFO_ARRAY(1, 1003, 1),
   SDO_ORDINATE_ARRAY(1, 1, 10, 5, 1, 10, 5, 7, 10, 1, 7, 10, 1, 1, 10)))
FROM DUAL;
 
SDO_CS.MAKE_2D(SDO_GEOMETRY(3003,8307,NULL,SDO_ELEM_INFO_ARRAY(1,1003,1),SDO_ORD
--------------------------------------------------------------------------------
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR
AY(1, 1, 5, 1, 5, 7, 1, 7, 1, 1))

22.26 SDO_CS.MAKE_3D

構文

SDO_CS.MAKE_3D(
     geom2d      IN SDO_GEOMETRY, 
     height      IN NUMBER DEFAULT 0, 
     target_srid IN NUMBER DEFAULT NULL) RETURN SDO_GEOMETRY;

説明

2次元のジオメトリを3次元のジオメトリに変換します。

パラメータ

geom2d

2次元のジオメトリ・オブジェクトを指定します。

height

戻されたジオメトリ内のすべての頂点に対して、3番目の次元で使用される高さの値を指定します。このパラメータがNULLであるか、または指定されていない場合は、すべての頂点に対して高さ0(ゼロ)が使用されます。

target_srid

ターゲット座標参照系のSRIDを指定します。この値は、NULLまたはSDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値である必要があります。

使用上のノート

ノート:

SDO_CS.MAKE_3Dファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでOracle JVMが有効になっている場合にのみサポートされます。Oracle JVMを有効にするには、Oracle Autonomous Databaseサーバーレスの使用Oracle Javaの使用で詳細を参照してください。

このファンクションを使用して、次元間での変換をシミュレートする方法については、「異なる次元間の変換」を参照してください。

3次元の座標参照系のサポートの詳細は、「3次元の座標参照系のサポート」を参照してください。

次の例では、cola_aの2次元ジオメトリを3次元ジオメトリに変換します。(この例では、「座標系変換の例」の例の定義を使用します。)。

SELECT SDO_CS.MAKE_3D(c.shape, 10, 8307) FROM cola_markets_cs c
  WHERE c.name = 'cola_a';
 
SDO_CS.MAKE_3D(C.SHAPE,10,8307)(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELE
--------------------------------------------------------------------------------
SDO_GEOMETRY(3003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR
AY(1, 1, 10, 5, 1, 10, 5, 7, 10, 1, 7, 10, 1, 1, 10))

22.27 SDO_CS.MAP_EPSG_SRID_TO_ORACLE

構文

SDO_CS.MAP_EPSG_SRID_TO_ORACLE(
     epsg_srid  IN NUMBER) RETURN NUMBER;

説明

指定したEPSG SRID値に対応するOracle Spatial and Graph SRID値を戻します。

パラメータ

epsg_srid

EPSG座標参照系のSRIDを指定します。EPSG座標参照系表のCOORD_REF_SYS_CODEフィールドに示されます。

使用上のノート

このファンクションは、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のSRID列の値に一致する値を戻します。

指定したOracle Spatial and Graph SRID値に対応するEPSG SRID値を戻すには、SDO_CS.MAP_ORACLE_SRID_TO_EPSGファンクションを使用します。

次の例では、EPSG SRID 23038に対応するOracle Spatial and Graph SRID値を戻します。

SELECT SDO_CS.MAP_EPSG_SRID_TO_ORACLE(23038) FROM DUAL;
 
SDO_CS.MAP_EPSG_SRID_TO_ORACLE(23038)                                           
-------------------------------------                                           
                                82361

22.28 SDO_CS.MAP_ORACLE_SRID_TO_EPSG

構文

SDO_CS.MAP_ORACLE_SRID_TO_EPSG(
     legacy_srid  IN NUMBER) RETURN NUMBER;

説明

指定したOracle Spatial and Graph SRID値に対応するEPSG SRID値を戻します。

パラメータ

legacy_srid

Oracle Spatial and Graph SRID値を指定します。この値は、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)のLEGACY_CODE列の値と一致する必要があります。

使用上のノート

このファンクションは、EPSG座標参照系のSRIDを戻します。座標参照系のEPSG SRID値は、EPSG座標参照系表のCOORD_REF_SYS_CODEフィールドに示されます。

指定したEPSG SRID値に対応するOracle Spatial and Graph SRID値を戻すには、SDO_CS.MAP_EPSG_SRID_TO_ORACLEファンクションを使用します。

次の例では、Oracle Spatial and Graph SRID 82361に対応するEPSG SRID値を戻します。

SELECT SDO_CS.MAP_ORACLE_SRID_TO_EPSG(82361) FROM DUAL;
 
SDO_CS.MAP_ORACLE_SRID_TO_EPSG(82361)                                           
-------------------------------------                                           
                                23038

22.29 SDO_CS.REVOKE_PREFERENCE_FOR_OP

構文

SDO_CS.REVOKE_PREFERENCE_FOR_OP(
     op_id      IN NUMBER, 
     source_crs IN NUMBER DEFAULT NULL, 
     target_crs IN NUMBER DEFAULT NULL, 
     use_case   IN VARCHAR2 DEFAULT NULL);

説明

ソース座標系とターゲット座標系の間での操作のプリファレンスを取り消します。

パラメータ

op_id

操作のID番号を指定します。この値は、SDO_CS.ADD_PREFERENCE_FOR_OPプロシージャへのコールで指定したop_id値と一致する必要があります。

source_crs

ソース座標参照系のSRIDを指定します。この値は、SDO_CS.ADD_PREFERENCE_FOR_OPプロシージャへのコールで指定したsource_crstarget_crsおよびuse_caseの組合せのsource_crs値と一致する必要があります。

target_crs

ターゲット座標参照系のSRIDを指定します。SDO_CS.ADD_PREFERENCE_FOR_OPプロシージャへのコールで指定したsource_crstarget_crsおよびuse_caseの組合せのtarget_crs値と一致する必要があります。

use_case

このプリファレンスに関連付けられたユースケースの名前を指定します。SDO_CS.ADD_PREFERENCE_FOR_OPプロシージャへのコールで指定したsource_crstarget_crsおよびuse_caseの組合せのuse_case値と一致する必要があります。

使用上のノート

このプロシージャは、SDO_CS.ADD_PREFERENCE_FOR_OPプロシージャの効果とは逆になります。

use_caseがNULLの場合、このプロシージャはSDO_PREFERRED_OPS_SYSTEM表(「SDO_PREFERRED_OPS_SYSTEM表」を参照)から1つ以上の行を削除します。use_caseがNULL以外の場合、このプロシージャはSDO_PREFERRED_OPS_USER表(「SDO_PREFERRED_OPS_USER表」を参照)から1つ以上の行を削除します。

次の例では、ユースケースuse_case_Bが変換の対象に指定されている場合に、SRID 4301からSRID 4326への変換で使用する操作ID 19777のプリファレンスを取り消します。

EXECUTE SDO_CS.REVOKE_PREFERENCE_FOR_OP(19977, 4301, 4326, 'use_case_B');

22.30 SDO_CS.TO_GEOHASH

構文

SDO_CS.TO_GEOHASH(
     geom           IN SDO_GEOMETRY, 
     geohash_length IN NUMBER) RETURN VARCHAR2;

説明

空間ジオメトリ(SDO_GEOMETRY型)のジオハッシュ表現を戻します。

パラメータ

geom

Oracle Spatialジオメトリ

geohash_length

ジオハッシュの結果の長さ。

使用上のノート

Oracle Spatialでのジオハッシュのサポートの詳細は、「ジオハッシュのサポート」を参照してください。

次の例では、is_legacyパラメータ値が結果に与える影響を示します。最初の例では、SRID値が8307の座標参照系と同じWKT数値を持つすべてのレガシー測地座標参照系のSRID値を戻します。

SELECT sdo_cs.to_GeoHash(sdo_geometry(2001, 4326, sdo_point_type(10.40744, 57.64911, null), null, null), 11) 
   FROM DUAL;from dual;

u4pruydqqvj

22.31 SDO_CS.TO_OGC_SIMPLEFEATURE_SRS

構文

SDO_CS.TO_OGC_SIMPLEFEATURE_SRS(
     wkt  IN VARCHAR2) RETURN VARCHAR2;

説明

well-knownテキスト文字列を、TOWGS84キーワードを含むOpen Geospatial Consortiumのシンプル・フィーチャ形式からTOWGS84キーワードのない形式に変換します。

パラメータ

wkt

well-knownテキスト文字列を指定します。

使用上のノート

well-knownテキスト文字列をTOWGS84キーワードのないOpen Geospatial Consortiumのシンプル・フィーチャ形式からTOWGS84キーワードを含む形式に変換するには、SDO_CS.FROM_OGC_SIMPLEFEATURE_SRSプロシージャを使用します。

次の例では、well-knownテキスト文字列をTOWGS84キーワードを含むOpen Geospatial Consortiumのシンプル・フィーチャ形式からTOWGS84キーワードのない形式に変換します。

SELECT sdo_cs.to_OGC_SimpleFeature_SRS('GEOGCS [ "Longitude / Latitude (DHDN)", 
  DATUM ["", SPHEROID ["Bessel 1841", 6377397.155, 299.1528128], 
  TOWGS84 [582.000000, 105.000000, 414.000000, -1.040000, -0.350000, 3.080000,
    8.300000] ],
  PRIMEM [ "Greenwich", 0.000000 ], UNIT ["Decimal Degree", 0.01745329251994330]]')
FROM DUAL;
 
MDSYS.SDO_CS.TO_OGC_SIMPLEFEATURE_SRS('GEOGCS["LONGITUDE/LATITUDE(DHDN)",DATUM["
--------------------------------------------------------------------------------
GEOGCS [ "Longitude / Latitude (DHDN)", DATUM ["", SPHEROID ["Bessel 1841", 6377
397.155, 299.1528128], 582.000000, 105.000000, 414.000000, -1.040000, -0.350000,
3.080000, 8.300000 ], PRIMEM [ "Greenwich", 0.000000 ], UNIT ["Decimal Degree",
0.01745329251994330]]

22.32 SDO_CS.TO_USNG

構文

SDO_CS.TO_USNG(
     geom               IN SDO_GEOMETRY, 
     accuracy_in_meters IN NUMBER, 
     datum              IN VARCHAR2 DEFAULT 'NAD83') RETURN VARCHAR2;

説明

空間点ジオメトリ・オブジェクトをU.S. National Grid形式で表される点に変換します。

パラメータ

geom

表現をU.S. National Grid形式で表される点に変換する点ジオメトリを指定します。入力ジオメトリには、NULL以外の有効なSRID(SDO_COORD_REF_SYS表のSRID列の値)を指定する必要があります(「SDO_COORD_REF_SYS表」を参照)。

accuracy_in_meters

点の位置の精度をm単位で指定します。負または正の方向に10の累乗単位で指定します(0.001、0.01、0.1、1、10、100、1000など)。これ以外の値を指定すると、Spatial and Graphによって内部調節されるため、結果が予想した値と異なることがあります。

datum

点のU.S. National Grid座標がベースとするデータの名前を指定します。NAD83またはNAD27のいずれかを指定する必要があります。デフォルト値はNAD83です。

使用上のノート

Oracle Spatial and GraphでサポートされるU.S. National Gridの詳細は、「U.S. National Gridのサポート」を参照してください。

accuracy_in_meters値は、戻されるU.S. National Grid文字列の精度を表すために使用される桁数に影響を与えます。たとえば、0.000001を指定すると、文字列の桁数は多くなりますが、データのソースによっては、この桁が実際の地理を正確に反映しないことがあります。次の例を考えてみます。UTMジオメトリからU.S. National Grid文字列を作成すると、不正確な変換は伴わないため、完全な精度が得られます。ただし、Lambert投影からU.S. National Grid形式への変換には、逆のLambert投影と前方UTM投影が伴うため、各投影が不正確になることがあります。戻されるU.S. National Grid文字列で1mm (0.001)の精度を求める場合は、この文字列にすべての桁が含まれますが、mmの桁の部分は正確な地理を反映しない可能性があります。

U.S. National Grid形式で表される点を空間点ジオメトリに変換するには、SDO_CS.FROM_USNGファンクションを使用します。

次の例では、経度/緯度座標の付いた空間ジオメトリの点オブジェクトを、0.001m(1mm)の精度を使用するU.S. National Grid形式で表される点に変換します。

-- Convert longitude/latitude (WGS 84) point to US National Grid.
SELECT SDO_CS.TO_USNG(
  SDO_GEOMETRY(2001, 4326,
    SDO_POINT_TYPE(-77.0352402158258, 38.8894673086544, NULL),
    NULL, NULL),
  0.001) FROM DUAL;
 
SDO_CS.TO_USNG(SDO_GEOMETRY(2001,4326,SDO_POINT_TYPE(-77.0352402158258,38.889467
--------------------------------------------------------------------------------
18SUJ2348316806479498

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

22.34 SDO_CS.TRANSFORM_LAYER

構文

SDO_CS.TRANSFORM_LAYER(
     table_in  IN VARCHAR2,
    column_in IN VARCHAR2,
    table_out IN VARCHAR2,
    to_srid   IN NUMBER);

または

SDO_CS.TRANSFORM_LAYER(
     table_in  IN VARCHAR2,
    column_in IN VARCHAR2,
    table_out IN VARCHAR2,
    use_plan  IN TFM_PLAN);

または

SDO_CS.TRANSFORM_LAYER(
     table_in  IN VARCHAR2,
    column_in IN VARCHAR2,
    table_out  IN VARCHAR2,
    use_case  IN VARCHAR2,
    to_srid   IN NUMBER);

説明

ジオメトリのレイヤー全体(表内の指定した列に含まれるすべてのジオメトリ)を変換します。

パラメータ

table_in

ジオメトリを変換するレイヤー(column_in)を含む表を指定します。

column_in

変換するジオメトリを含む、table_inの列を指定します。

table_out

変換の結果作成される表で、変換結果を含みます。この表の形式については、「使用上のノート」を参照してください。

to_srid

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

use_plan

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

use_case

変換を実行する際に変換ルールを適用するユースケースの名前を指定します。ユースケースについては、「EPSGモデルとSpatial and Graph」を参照してください。

使用上のノート

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

次の場合に例外が発生します。

  • table_inが存在しない、または表にcolumn_inが存在しない場合

  • column_inのジオメトリのSDO_SRID値がNULLまたは無効である場合

  • table_outがすでに存在する場合

  • to_sridが無効な場合

table_out表は、プロシージャによって作成され、変換したジオメトリごとに1行書き込まれます。この表には、表22-1に示す列があります。

表22-1 変換したレイヤーを格納する表

列名 データ型 説明

SDO_ROWID

ROWID

Oracle ROWID(行アドレス識別子)です。ROWIDデータ型については、『Oracle Database SQL言語リファレンス』を参照してください。

GEOMETRY

SDO_GEOMETRY

(to_sridパラメータで)指定した座標系に座標値を持つジオメトリ・オブジェクトです。

次の例では、COLA_MARKETS_CS表のshape列のジオメトリをSRID値8199を使用する表現に変換します。変換されたジオメトリは、新しく作成されたCOLA_MARKETS_CS_8199表に格納されます。(この例では、「座標系変換の例」の例の定義を使用します。)

-- Transform the entire SHAPE layer and put results in the table
-- named cola_markets_cs_8199, which the procedure will create.
CALL SDO_CS.TRANSFORM_LAYER('COLA_MARKETS_CS','SHAPE','COLA_MARKETS_CS_8199',8199);

「座標系変換の例」は、COLA_MARKETS_CSおよびCOLA_MARKETS_CS_8199の両方の表のジオメトリ・オブジェクトの座標表示を含みます。

22.35 SDO_CS.UPDATE_WKTS_FOR_ALL_EPSG_CRS

構文

SDO_CS.UPDATE_WKTS_FOR_ALL_EPSG_CRS();

説明

すべてのEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。

パラメータ

なし。

使用上のノート

well-knownテキスト(WKT)の説明を更新するプロシージャの使用方法については、「well-knownテキストの更新手順」を参照してください。

次の例では、すべてのEPSG座標参照系のWKTの説明を更新します。

EXECUTE SDO_CS.UPDATE_WKTS_FOR_ALL_EPSG_CRS;
Updating SRID 4001...                                                           
Updating SRID 4002...                                                           
Updating SRID 4003...                                                           
. . .                                                      
Updating SRID 69036405...                                                       
Updating SRID 69046405...

22.36 SDO_CS.UPDATE_WKTS_FOR_EPSG_CRS

構文

SDO_CS.UPDATE_WKTS_FOR_EPSG_CRS(
     srid IN NUMBER);

説明

指定したSRIDに関連付けられたEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。

パラメータ

srid

well-knownテキスト(WKT)の説明を更新する座標系のSRIDを指定します。指定する値のエントリは、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)に含まれている必要があります。

使用上のノート

このプロシージャは、指定したSRIDおよびすべての依存SRIDのWKTの説明を更新します。たとえば、SRID 4326 (WGS84測地座標系)の場合、この測地座標系を使用するすべてのEPSG座標系が更新されます。

well-knownテキスト(WKT)の説明を更新するプロシージャの使用方法については、「well-knownテキストの更新手順」を参照してください。

次の例では、SRID 4326に関連付けられたEPSG座標参照系のWKTの説明を更新します。

EXECUTE SDO_CS.UPDATE_WKTS_FOR_EPSG_CRS(4326);

22.37 SDO_CS.UPDATE_WKTS_FOR_EPSG_DATUM

構文

SDO_CS.UPDATE_WKTS_FOR_EPSG_DATUM(
     datum_id  IN NUMBER);

説明

指定したデータに関連付けられたすべてのEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。

パラメータ

datum_id

データのIDを指定します。この値は、SDO_DATUMS表(「SDO_DATUMS表」を参照)のDATUM_ID列の値と一致する必要があります。

使用上のノート

well-knownテキスト(WKT)の説明を更新するプロシージャの使用方法については、「well-knownテキストの更新手順」を参照してください。

次の例では、データ5100に関連付けられたすべてのEPSG座標参照系のWKTの説明を更新します。

EXECUTE SDO_CS.UPDATE_WKTS_FOR_EPSG_DATUM(5100);
Updating SRID 5714...                                                           
Updating SRID 5715...

22.38 SDO_CS.UPDATE_WKTS_FOR_EPSG_ELLIPS

構文

SDO_CS.UPDATE_WKTS_FOR_EPSG_ELLIPS(
     ellipsoid_id  IN NUMBER);

説明

指定した楕円体に関連付けられたすべてのEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。

パラメータ

ellipsoid_id

楕円体のIDを指定します。この値は、SDO_ELLIPSOIDS表(「SDO_ELLIPSOIDS表」を参照)のELLIPSOID_ID列の値と一致する必要があります。

使用上のノート

well-knownテキスト(WKT)の説明を更新するプロシージャの使用方法については、「well-knownテキストの更新手順」を参照してください。

次の例では、楕円体7100に関連付けられたすべてのEPSG座標参照系のWKTの説明を更新します。

EXECUTE SDO_CS.UPDATE_WKTS_FOR_EPSG_ELLIPS(7001);
Updating SRID 4001...                                                           
Updating SRID 4188...                                                           
Updating SRID 29901...                                                          
Updating SRID 61886405...                                                       
Updating SRID 4277...                                                           
Updating SRID 27700...                                                          
Updating SRID 62776405...                                                       
Updating SRID 4278...                                                           
Updating SRID 62786405...                                                       
Updating SRID 4279...                                                           
Updating SRID 62796405...

22.39 SDO_CS.UPDATE_WKTS_FOR_EPSG_OP

構文

SDO_CS.UPDATE_WKTS_FOR_EPSG_OP(
     coord_op_id  IN NUMBER);

説明

指定した座標変換操作に関連付けられたすべてのEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。

パラメータ

coord_op_id

座標変換操作のSRIDのIDを指定します。この値は、SDO_COORD_OP_PARAM_VALS表(「SDO_COORD_OP_PARAM_VALS表」を参照)のCOORD_OP_ID列の値と一致する必要があります。

使用上のノート

well-knownテキスト(WKT)の説明を更新するプロシージャの使用方法については、「well-knownテキストの更新手順」を参照してください。

次の例では、座標変換操作2000067に関連付けられたすべてのEPSG座標参照系のWKTの説明を更新します。

EXECUTE SDO_CS.UPDATE_WKTS_FOR_EPSG_OP(2000067);
Updating SRID 20000671...

22.40 SDO_CS.UPDATE_WKTS_FOR_EPSG_PARAM

構文

SDO_CS.UPDATE_WKTS_FOR_EPSG_PARAM(
     coord_op_id  IN NUMBER, 
     parameter_id IN NUMBER);

説明

指定した座標変換操作と変換操作のパラメータに関連付けられたすべてのEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。

パラメータ

coord_op_id

座標変換操作のSRIDのIDを指定します。この値は、SDO_COORD_OP_PARAM_VALS表(「SDO_COORD_OP_PARAM_VALS表」を参照)のCOORD_OP_ID列の値と一致する必要があります。

parameter_id

変換操作のパラメータのSRIDのIDを指定します。この値は、SDO_COORD_OP_PARAM_VALS表(「SDO_COORD_OP_PARAM_VALS表」を参照)のPARAMETER_ID列の値と一致する必要があります。COORD_OP_ID列の値は、coord_op_idパラメータ値と同じです。

使用上のノート

well-knownテキスト(WKT)の説明を更新するプロシージャの使用方法については、「well-knownテキストの更新手順」を参照してください。

次の例では、座標変換操作9601とパラメータ8602に関連付けられたすべてのEPSG座標参照系のWKTの説明を更新します。

EXECUTE SDO_CS.UPDATE_WKTS_FOR_EPSG_PARAM(9601, 8602);

22.41 SDO_CS.UPDATE_WKTS_FOR_EPSG_PM

構文

SDO_CS.UPDATE_WKTS_FOR_EPSG_PM(
     prime_meridian_id IN NUMBER);

説明

指定した本初子午線に関連付けられたすべてのEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。

パラメータ

prime_meridian_id

本初子午線のIDを指定します。この値は、SDO_PRIME_MERIDIANS表(「SDO_PRIME_MERIDIANS表」を参照)のPRIME_MERIDIAN_ID列の値と一致する必要があります。

使用上のノート

well-knownテキスト(WKT)の説明を更新するプロシージャの使用方法については、「well-knownテキストの更新手順」を参照してください。

次の例では、本初子午線8902に関連付けられたすべてのEPSG座標参照系のWKTの説明を更新します。

EXECUTE SDO_CS.UPDATE_WKTS_FOR_EPSG_PM(8902);
Updating SRID 4803...                                                           
Updating SRID 20790...                                                          
Updating SRID 20791...                                                          
Updating SRID 68036405...                                                       
Updating SRID 4904...                                                           
Updating SRID 2963...                                                           
Updating SRID 69046405...

22.42 SDO_CS.VALIDATE_EPSG_MATRIX

構文

SDO_CS.VALIDATE_EPSG_MATRIX(
     method_id    IN NUMBER, 
     parameter_id IN NUMBER, 
     matrix       IN CLOB 
     ) RETURN VARCHAR2;

説明

NADCON、NTv2またはVERTCON形式のEPSGマトリックスを検証します。

パラメータ

method_id

マトリックスが参照するEPSG method IDを指定します。

parameter_id

操作にNADCONなどの複数のマトリックスが含まれる場合、マトリックスを識別するEPSGパラメータIDを指定します。

matrix

(SDO_CS.LOAD_EPSG_MATRIXを使用してまたは手動でロードされる)マトリックスCLOBを指定します。

使用上のノート

EPSGマトリックスは、SDO_CS.LOAD_EPSG_MATRIXプロシージャを使用してロードできます。

次の例では、操作1703 ("NAD27 to WGS 84 (32)")のNTv2マトリックスをロードします。NTv2操作の場合、単一のマトリックスで十分で、パラメータID 8656に割り当てられます。

SQL> select
  m.coord_op_method_name "Method",
  vals.parameter_id "Parameter",
  sdo_cs.validate_epsg_matrix(m.coord_op_method_id, vals.parameter_id, vals.param_value_file) "Valid",
  count(*) "#"
from
  sdo_coord_op_param_vals vals,
  sdo_coord_op_methods m
where
  m.coord_op_method_id = vals.coord_op_method_id and
  not(vals.param_value_file is null)
group by
  m.coord_op_method_name,
  vals.parameter_id,
  sdo_cs.validate_epsg_matrix(m.coord_op_method_id, vals.parameter_id, vals.param_value_file)
order by
  m.coord_op_method_name,
  vals.parameter_id,
  sdo_cs.validate_epsg_matrix(m.coord_op_method_id, vals.parameter_id, vals.param_value_file);

Method                                              Parameter Valid          #
-------------------------------------------------- ---------- ----- ----------
Geographic3D to Geographic2D+GravityRelatedHeight        8666 TRUE           2
Geographic3D to GravityRelatedHeight (OSGM02)            8666 TRUE          14
NADCON                                                   8657 TRUE         104
NADCON                                                   8658 TRUE         104
NTv2                                                     8656 TRUE           4
Ordnance Survey National Transformation                  8664 TRUE           3
 
6 rows selected.

22.43 SDO_CS.VALIDATE_WKT

構文

SDO_CS.VALIDATE_WKT(
     srid IN NUMBER 
     ) RETURN VARCHAR2;

説明

指定されたSRIDに関連付けられたwell-knownテキスト(WKT)の説明を検査します。

パラメータ

srid

well-knownテキスト(WKT)の説明を検査する座標系のSRIDを指定します。指定する値のエントリは、SDO_COORD_REF_SYS表(「SDO_COORD_REF_SYS表」を参照)に含まれている必要があります。

使用上のノート

このファンクションは、WKTの説明が有効である場合は文字列「TRUE」を戻します。WKTの説明が無効である場合、このファンクションは「FALSE (<position-number>)」という形式の文字列を戻します。ここで、<position-number>は、WKTの説明内で、最初のエラーが発生した文字の位置の番号です。

WKTの説明が「well-knownテキスト(WKT)」に示す要件を満たすかどうかが確認されます。

次の例では、SRID 81989000に関連付けられた座標系のWKTの説明を検査します。結果は、無効な状態の原因部分(無効な状態の最初の原因)がWKTの説明内の文字位置181から始まっていることを示しています。(SRID 81989000は、既定の座標系には関連付けられていません。これは、MDSYS.CS_SRS表のテスト・バージョンに挿入された意図的に無効な状態の座標系のためのものであり、Oracle Spatial and Graphに付属するMDSYS.CS_SRS表には含まれていません。)

SELECT SDO_CS.VALIDATE_WKT(81989000) FROM DUAL;

SDO_CS.VALIDATE_WKT(81989000)                                                   
--------------------------------------------------------------------------------
FALSE (181)