22 SDO_CSパッケージ(座標系変換)
MDSYS.SDO_CSパッケージには、座標系で使用するサブプログラムが含まれます。
単一のジオメトリまたはジオメトリの全レイヤー(表で指定した列のすべてのジオメトリ)に対して明示的な座標変換を実行できます。
この章で説明するサブプログラムを使用する場合は、座標系の概念を理解しておく必要があります(「座標系」および「座標系(空間参照システム)」を参照)。
この章では、これらのサブプログラムのリファレンス情報をアルファベット順に説明します。
- SDO_CS.ADD_PREFERENCE_FOR_OP
- SDO_CS.CONVERT_3D_SRID_TO_2D
- SDO_CS.CONVERT_NADCON_TO_XML
- SDO_CS.CONVERT_NTV2_TO_XML
- SDO_CS.CONVERT_XML_TO_NADCON
- SDO_CS.CONVERT_XML_TO_NTV2
- SDO_CS.CREATE_CONCATENATED_OP
- SDO_CS.CREATE_OBVIOUS_EPSG_RULES
- SDO_CS.CREATE_PREF_CONCATENATED_OP
- SDO_CS.DELETE_ALL_EPSG_RULES
- SDO_CS.DELETE_OP
- SDO_CS.DETERMINE_CHAIN
- SDO_CS.DETERMINE_DEFAULT_CHAIN
- SDO_CS.FIND_GEOG_CRS
- SDO_CS.FIND_PROJ_CRS
- SDO_CS.FIND_SRID
- SDO_CS.FROM_GEOHASH
- SDO_CS.FROM_OGC_SIMPLEFEATURE_SRS
- SDO_CS.FROM_USNG
- SDO_CS.GENERATE_SCRIPT_FROM_SRID
- SDO_CS.GET_EPSG_DATA_VERSION
- SDO_CS.GET_GEOHASH_CELL_HEIGHT
- SDO_CS.GET_GEOHASH_CELL_WIDTH
- SDO_CS.LOAD_EPSG_MATRIX
- SDO_CS.MAKE_2D
- SDO_CS.MAKE_3D
- SDO_CS.MAP_EPSG_SRID_TO_ORACLE
- SDO_CS.MAP_ORACLE_SRID_TO_EPSG
- SDO_CS.REVOKE_PREFERENCE_FOR_OP
- SDO_CS.TO_GEOHASH
- SDO_CS.TO_OGC_SIMPLEFEATURE_SRS
- SDO_CS.TO_USNG
- SDO_CS.TRANSFORM
- SDO_CS.TRANSFORM_LAYER
- SDO_CS.UPDATE_WKTS_FOR_ALL_EPSG_CRS
- SDO_CS.UPDATE_WKTS_FOR_EPSG_CRS
- SDO_CS.UPDATE_WKTS_FOR_EPSG_DATUM
- SDO_CS.UPDATE_WKTS_FOR_EPSG_ELLIPS
- SDO_CS.UPDATE_WKTS_FOR_EPSG_OP
- SDO_CS.UPDATE_WKTS_FOR_EPSG_PARAM
- SDO_CS.UPDATE_WKTS_FOR_EPSG_PM
- SDO_CS.VALIDATE_EPSG_MATRIX
- SDO_CS.VALIDATE_WKT
親トピック: リファレンス情報
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');
親トピック: SDO_CSパッケージ(座標系変換)
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 … … … …
親トピック: SDO_CSパッケージ(座標系変換)
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表現に変換します。
パラメータ
使用上のノート
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 . . .
親トピック: SDO_CSパッケージ(座標系変換)
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表現に変換します。
パラメータ
使用上のノート
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 . . .
親トピック: SDO_CSパッケージ(座標系変換)
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形式に変換します。
パラメータ
使用上のノート
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 . . .
親トピック: SDO_CSパッケージ(座標系変換)
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形式に変換します。
パラメータ
使用上のノート
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 . . .
親トピック: SDO_CSパッケージ(座標系変換)
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; /
親トピック: SDO_CSパッケージ(座標系変換)
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;
親トピック: SDO_CSパッケージ(座標系変換)
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_OPとSDO_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; /
親トピック: SDO_CSパッケージ(座標系変換)
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;
親トピック: SDO_CSパッケージ(座標系変換)
22.11 SDO_CS.DELETE_OP
構文
SDO_CS.DELETE_OP( op_id IN NUMBER);
説明
連結操作を削除します。
使用上のノート
連結操作を作成して、システム全体または指定したユースケースのみで優先させるには、SDO_CS.CREATE_CONCATENATED_OPプロシージャを使用します。
例
次の例では、ID番号が300の操作を削除します。
EXECUTE SDO_CS.DELETE_OP(300);
親トピック: SDO_CSパッケージ(座標系変換)
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))
親トピック: SDO_CSパッケージ(座標系変換)
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)
親トピック: SDO_CSパッケージ(座標系変換)
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)
親トピック: SDO_CSパッケージ(座標系変換)
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)
親トピック: SDO_CSパッケージ(座標系変換)
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
親トピック: SDO_CSパッケージ(座標系変換)
22.17 SDO_CS.FROM_GEOHASH
構文
SDO_CS.FROM_GEOHASH( geohash IN SDO_VARCHAR2, srid IN NUMBER) RETURN SDO_GEOMETRY;
説明
指定したジオハッシュを表す空間ジオメトリ(SDO_GEOMETRY型)を戻します。
使用上のノート
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))
親トピック: SDO_CSパッケージ(座標系変換)
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
キーワードを含む形式に変換します。
使用上のノート
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]]
親トピック: SDO_CSパッケージ(座標系変換)
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)
親トピック: SDO_CSパッケージ(座標系変換)
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');
親トピック: SDO_CSパッケージ(座標系変換)
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
親トピック: SDO_CSパッケージ(座標系変換)
22.22 SDO_CS.GET_GEOHASH_CELL_HEIGHT
構文
SDO_CS.GET_GEOHASH_CELL_HEIGHT( geohash_length IN NUMBER) RETURN SDO_NUMBER;
説明
指定したジオハッシュのセルの高さを戻します。
使用上のノート
ジオハッシュの精度は、その長さによって異なります。ジオハッシュが長いほど、定義される座標セルは小さく(精度が高く)なります。セルの幅と高さをメートルで戻すことができます(WGS84と仮定)。
Oracle Spatialでのジオハッシュのサポートの詳細は、「ジオハッシュのサポート」を参照してください。
例
次の例では、ジオハッシュの長さが11の場合のセルの高さをメートルで戻します。
SELECT sdo_cs.get_GeoHash_cell_height(11) FROM DUAL; .149
親トピック: SDO_CSパッケージ(座標系変換)
22.23 SDO_CS.GET_GEOHASH_CELL_WIDTH
構文
SDO_CS.GET_GEOHASH_CELL_WIDTH( geohash_length IN NUMBER) RETURN SDO_NUMBER;
説明
指定したジオハッシュのセルの幅を戻します。
使用上のノート
ジオハッシュの精度は、その長さによって異なります。ジオハッシュが長いほど、定義される座標セルは小さく(精度が高く)なります。セルの幅と高さをメートルで戻すことができます(WGS84と仮定)。
Oracle Spatialでのジオハッシュのサポートの詳細は、「ジオハッシュのサポート」を参照してください。
例
次の例では、ジオハッシュの長さが11の場合のセルの幅をメートルで戻します。
SELECT sdo_cs.get_GeoHash_cell_width(11) FROM DUAL; .149
親トピック: SDO_CSパッケージ(座標系変換)
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マトリックスをロードします。
パラメータ
使用上のノート
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');
親トピック: SDO_CSパッケージ(座標系変換)
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))
親トピック: SDO_CSパッケージ(座標系変換)
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))
親トピック: SDO_CSパッケージ(座標系変換)
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値を戻します。
使用上のノート
このファンクションは、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
親トピック: SDO_CSパッケージ(座標系変換)
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
親トピック: SDO_CSパッケージ(座標系変換)
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_crs
、target_crs
およびuse_case
の組合せのsource_crs
値と一致する必要があります。 - target_crs
-
ターゲット座標参照系のSRIDを指定します。SDO_CS.ADD_PREFERENCE_FOR_OPプロシージャへのコールで指定した
source_crs
、target_crs
およびuse_case
の組合せのtarget_crs
値と一致する必要があります。 - use_case
-
このプリファレンスに関連付けられたユースケースの名前を指定します。SDO_CS.ADD_PREFERENCE_FOR_OPプロシージャへのコールで指定した
source_crs
、target_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');
親トピック: SDO_CSパッケージ(座標系変換)
22.30 SDO_CS.TO_GEOHASH
構文
SDO_CS.TO_GEOHASH( geom IN SDO_GEOMETRY, geohash_length IN NUMBER) RETURN VARCHAR2;
説明
空間ジオメトリ(SDO_GEOMETRY型)のジオハッシュ表現を戻します。
使用上のノート
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
親トピック: SDO_CSパッケージ(座標系変換)
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
キーワードのない形式に変換します。
使用上のノート
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]]
親トピック: SDO_CSパッケージ(座標系変換)
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
親トピック: SDO_CSパッケージ(座標系変換)
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つの異なるローカル座標系間のみで実行できます。
使用する座標系の種類に関係なく、円および円弧の変換はサポートされていません。
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))
親トピック: SDO_CSパッケージ(座標系変換)
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 |
( |
例
次の例では、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の両方の表のジオメトリ・オブジェクトの座標表示を含みます。
親トピック: SDO_CSパッケージ(座標系変換)
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...
親トピック: SDO_CSパッケージ(座標系変換)
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);
親トピック: SDO_CSパッケージ(座標系変換)
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...
親トピック: SDO_CSパッケージ(座標系変換)
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...
親トピック: SDO_CSパッケージ(座標系変換)
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...
親トピック: SDO_CSパッケージ(座標系変換)
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);
親トピック: SDO_CSパッケージ(座標系変換)
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...
親トピック: SDO_CSパッケージ(座標系変換)
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.
親トピック: SDO_CSパッケージ(座標系変換)
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)
親トピック: SDO_CSパッケージ(座標系変換)