MDSYS.SDO_CSパッケージには、座標系で使用するサブプログラムが含まれます。単一ジオメトリまたはジオメトリのレイヤー全体(表の指定した列に含まれるすべてのジオメトリ)で、明示的に座標変換を行うことができます。
この章で説明するサブプログラムを使用する場合は、座標系の概念を理解しておく必要があります(1.5.4項および第6章を参照)。
表21-1に、座標系変換サブプログラムを示します。
表21-1 座標系変換のサブプログラム
サブプログラム | 説明 |
---|---|
|
ソース座標系とターゲット座標系の間での操作のプリファレンスを追加します。 |
|
ASCII形式のNADCON(North American Datum Conversion)グリッドをOracle Spatial XML表現に変換します。 |
|
ASCII形式のNTv2(National Transformation Version 2)グリッドをOracle Spatial XML表現に変換します。 |
|
NADCON(North American Datum Conversion)グリッドのOracle Spatial XML表現をNADCON ASCII形式に変換します。 |
|
NTv2(National Transformation Version 2)グリッドのOracle Spatial XML表現をNTv2 ASCII形式に変換します。 |
|
連結操作を作成します。 |
SDO_CS.CREATE_OBVIOUS_EPSG_RULES |
特定の変換で適用するEPSGルールの基本セットを作成します。 |
SDO_CS.CREATE_PREF_CONCATENATED_OP |
連結操作を作成し、変換計画に関連付け、システム全体または指定したユースケースのいずれかで優先させます。 |
|
特定の変換で適用するEPSGルールの基本セットを削除します。 |
|
連結操作を削除します。 |
|
システムのルール・セットに基づいて、座標参照系間の変換で使用する問合せの連鎖を戻します。 |
SDO_CS.DETERMINE_DEFAULT_CHAIN |
座標参照系間の変換で使用するSRID値のデフォルトの連鎖を戻します。 |
|
指定した参照SRID値を持つ座標参照系と同じwell-knownテキスト(WKT)数値を持つ測地(地理)座標参照系のSRID値を戻します。 |
|
指定した参照SRID値を持つ座標参照系と同じwell-knownテキスト(WKT)数値を持つ投影座標参照系のSRID値を戻します。 |
|
指定した情報に一致する座標系のSRID値を検索します。 |
SDO_CS.FROM_OGC_SIMPLEFEATURE_SRS |
well-knownテキスト文字列を |
|
U.S. National Grid形式で表される点を空間点ジオメトリ・オブジェクトに変換します。 |
|
Spatialによって使用されるEPSGデータセットのバージョン番号を取得します。 |
|
3次元のジオメトリを2次元のジオメトリに変換します。 |
|
2次元のジオメトリを3次元のジオメトリに変換します。 |
SDO_CS.MAP_EPSG_SRID_TO_ORACLE |
指定したEPSG SRID値に対応するOracle Spatial SRID値を戻します。 |
SDO_CS.MAP_ORACLE_SRID_TO_EPSG |
指定したOracle Spatial SRID値に対応するEPSG SRID値を戻します。 |
SDO_CS.REVOKE_PREFERENCE_FOR_OP |
ソース座標系とターゲット座標系の間での操作のプリファレンスを取り消します。 |
SDO_CS.TO_OGC_SIMPLEFEATURE_SRS |
well-knownテキスト文字列を、 |
|
座標系(SRIDまたは名前で指定)を使用してジオメトリ表現を変換します。 |
|
ジオメトリのレイヤー全体(表内の指定した列に含まれるすべてのジオメトリ)を変換します。 |
SDO_CS.UPDATE_WKTS_FOR_ALL_EPSG_CRS |
すべてのEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。 |
SDO_CS.UPDATE_WKTS_FOR_EPSG_CRS |
指定したSRIDに関連付けられたEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。 |
SDO_CS.UPDATE_WKTS_FOR_EPSG_DATUM |
指定したデータに関連付けられたすべてのEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。 |
SDO_CS.UPDATE_WKTS_FOR_EPSG_ELLIPS |
指定した楕円体に関連付けられたすべてのEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。 |
SDO_CS.UPDATE_WKTS_FOR_EPSG_OP |
指定した座標変換操作に関連付けられたすべてのEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。 |
SDO_CS.UPDATE_WKTS_FOR_EPSG_PARAM |
指定した座標変換操作と変換操作のパラメータに関連付けられたすべてのEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。 |
SDO_CS.UPDATE_WKTS_FOR_EPSG_PM |
指定した本初子午線に関連付けられたすべてのEPSG座標参照系のwell-knownテキスト(WKT)の説明を更新します。 |
|
指定されたSRIDに関連付けられたwell-knownテキスト(WKT)の説明を検査します。 |
この章では、これらのサブプログラムのリファレンス情報をアルファベット順に説明します。
構文
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);
パラメータ
操作のID番号を指定します。この値は、SDO_COORD_OPS表(6.7.8項を参照)のCOORD_OP_ID列の値である必要があります。
ソース座標参照系のSRIDを指定します。この値は、NULLまたはSDO_COORD_REF_SYS表(6.7.9項を参照)のSRID列の値である必要があります。
ターゲット座標参照系のSRIDを指定します。この値は、NULLまたはSDO_COORD_REF_SYS表(6.7.9項を参照)のSRID列の値である必要があります。
このプリファレンスに関連付けるユースケースの名前を指定します。この値は、NULLまたはSDO_PREFERRED_OPS_USER表(6.7.25項を参照)のUSE_CASE列の値である必要があります。
使用上の注意
use_case
がNULLの場合、この操作に関連付けられた変換計画はシステム全体のプリファレンスになり、行(逆の操作が存在する場合は2つの行)がSDO_PREFERRED_OPS_SYSTEM表(6.7.24項を参照)に追加されます。use_case
がNULL以外の場合、この操作に関連付けられた変換計画は指定したユースケースに関連するプリファレンスになり、行(逆の操作が存在する場合は2つの行)がSDO_PREFERRED_OPS_USER表(6.7.25項を参照)に追加されます。
連結操作を作成して、システム全体または指定したユースケースのいずれかで優先させるには、SDO_CS.CREATE_PREF_CONCATENATED_OP簡易プロシージャを使用します。
ソース座標系とターゲット座標系の間での操作のプリファレンスを取り消すには、SDO_CS.REVOKE_PREFERENCE_FOR_OPプロシージャを使用します。
パラメータ
CLOBオブジェクトにあるNADCONグリッドの緯度の値を指定します。
CLOBオブジェクトにあるNADCONグリッドの経度の値を指定します。
NADCONグリッドのOracle Spatial XML表現を含む出力XML文書を指定します。
例
次の例では、ASCII形式のNADCONグリッドをOracle Spatial 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 . . .
例
次の例では、ASCII形式のNTv2グリッドをOracle Spatial 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 . . .
パラメータ
NADCONグリッドのOracle Spatial XML表現を含むXML文書を指定します。
NADCONグリッドの緯度の値を含む出力CLOBオブジェクトを指定します。
NADCONグリッドの経度の値を含む出力CLOBオブジェクトを指定します。
例
次の例では、ASCII形式のNADCONグリッドをOracle Spatial 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 . . .
パラメータ
NTv2グリッドのOracle Spatial XML表現を含むXML文書を指定します。
NTv2グリッドの値を含む出力CLOBオブジェクトを指定します。
例
次の例では、ASCII形式のNTv2グリッドをOracle Spatial 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 . . .
パラメータ
連結操作のID番号を指定します。
連結操作に関連付ける名前を指定します。
変換計画を指定します。TFM_PLANオブジェクト型の詳細は、6.6項を参照してください。
使用上の注意
連結操作は、2つ以上の基本操作を連結(連鎖)したものです。
連結操作を作成して、システム全体または指定したユースケースのいずれかで優先させるには、SDO_CS.CREATE_PREF_CONCATENATED_OP簡易プロシージャを使用します。
パラメータ
作成するEPSGルールのアプリケーションに関連付けるユースケースの名前を指定します。この値は、SDO_PREFERRED_OPS_USER表(6.7.25項を参照)のUSE_CASE列の値である必要があります。
使用上の注意
このプロシージャでは、特定の座標参照系間で実行する主要なEPSG定義の変換ルールを作成します。一部の座標参照系間の変換では、EPSGで適用するルールがすでに指定されている場合があります。また、座標参照系間の特定の変換で、EPSGルールがデフォルトのOracle Spatialルールと異なる場合があります。このような場合、このプロシージャを実行すると、EPSGルールが適用されます。このプロシージャを実行しない場合は、デフォルトのSpatialルールが使用されます。
このプロシージャでは、複数の行をSDO_PREFERRED_OPS_SYSTEM表(6.7.24項を参照)に挿入します。
このプロシージャで作成したEPSGルールを削除して、すべてのケースでデフォルトのSpatialルールを使用するようにするには、SDO_CS.DELETE_ALL_EPSG_RULESプロシージャを使用します。
構文
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);
使用上の注意
この簡易プロシージャは、SDO_CS.CREATE_CONCATENATED_OPとSDO_CS.ADD_PREFERENCE_FOR_OPのプロシージャの操作を結合します。
連結操作は、2つ以上の基本操作を連結(連鎖)したものです。
use_case
がNULLの場合、この操作に関連付けられた変換計画はシステム全体のプリファレンスになり、行(逆の操作が存在する場合は2つの行)がSDO_PREFERRED_OPS_SYSTEM表(6.7.24項を参照)に追加されます。use_case
がNULL以外の場合、この操作に関連付けられた変換計画は指定したユースケースに関連するプリファレンスになり、行(逆の操作が存在する場合は2つの行)がSDO_PREFERRED_OPS_USER表(6.7.25項を参照)に追加されます。
システム全体または指定したユースケースのいずれでも優先させずに連結を作成するには、SDO_CS.CREATE_CONCATENATED_OPプロシージャを使用します。
連結操作を削除するには、SDO_CS.DELETE_OPプロシージャを使用します。
パラメータ
作成するEPSGルールのアプリケーションに関連付けるユースケースの名前を指定します。SDO_CS.CREATE_OBVIOUS_EPSG_RULESプロシージャがコールされた場合、use_case
パラメータ値(NULLまたは指定した値のいずれか)に使用した値と一致する必要があります。
使用上の注意
このプロシージャでは、SDO_CS.CREATE_OBVIOUS_EPSG_RULESプロシージャで以前に作成したEPSGルールを削除し、すべてのケースでデフォルトのSpatialルールを使用するようにします。(詳細は、SDO_CS.CREATE_OBVIOUS_EPSG_RULESプロシージャの「使用上の注意」を参照してください。)
use_case
がNULLの場合、このプロシージャはSDO_PREFERRED_OPS_SYSTEM表(6.7.24項を参照)からすべての行を削除します。use_case
がNULL以外の場合、このプロシージャはSDO_PREFERRED_OPS_USER表(6.7.25項を参照)から、指定したユースケースに関連付けられた行を削除します。
構文
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;
パラメータ
変換で使用するルール・セットを指定します。NULL値を指定すると、Oracleシステムのルール・セットが使用されます。
問合せの連鎖を決定するユースケースを指定します。この値は、NULL値またはSDO_PREFERRED_OPS_USER表(6.7.25項を参照)のUSE_CASE列の値である必要があります。
ソース座標参照系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(6.7.9項を参照)のSRID列の値である必要があります。
ターゲット座標参照系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(6.7.9項を参照)のSRID列の値である必要があります。
使用上の注意
このファンクションは、TFM_PLAN型のオブジェクトを戻します(6.6項を参照)。
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.DETERMINE_DEFAULT_CHAIN(
source_srid IN NUMBER,
target_srid IN NUMBER) RETURN SDO_SRID_CHAIN;
構文
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;
パラメータ
同じWKT数値を持つ他のすべての測地座標参照系を検索する座標参照系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(6.7.9項を参照)のSRID列の値である必要があります。
TRUE
は、SDO_COORD_REF_SYS表(6.7.9項を参照)のIS_LEGACY列の値がTRUE
である測地座標参照系に結果を制限します。FALSE
は、SDO_COORD_REF_SYS表のIS_LEGACY列の値がFALSE
である測地座標参照系に結果を制限します。このパラメータにNULL値を指定すると、結果の判断時に、SDO_COORD_REF_SYS表のIS_LEGACY列の値は無視されます。
投影座標参照系を一致対象にする場合、WKT値がどの程度一致する必要があるかを示す数値を指定します。デフォルト値は0.000001です。WKT項目の各数値は、参照SRIDのWKT内の対応する値と比較されるか、このファンクションで指定するパラメータのリスト内の対応する値と比較されます。すべてのケースで差がmax_rel_num_difference
の値以下の場合は、この座標参照系のSRIDが結果に含まれます。
使用上の注意
このファンクションは、VARRAY(1048576) OF NUMBER
として定義されるSDO_SRID_LIST型のオブジェクトを戻します。
well-knownテキスト(WKT)形式の詳細は、6.8.1.1項を参照してください。
例
次の例では、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.FIND_PROJ_CRS(
reference_srid IN NUMBER,
is_legacy IN VARCHAR2,
max_rel_num_difference IN NUMBER DEFAULT 0.000001) RETURN SDO_SRID_LIST;
パラメータ
同じWKT数値を持つ他のすべての投影座標参照系を検索する座標参照系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(6.7.9項を参照)のSRID列の値である必要があります。
TRUE
は、SDO_COORD_REF_SYS表(6.7.9項を参照)のIS_LEGACY列の値がTRUE
である投影座標参照系に結果を制限します。FALSE
は、SDO_COORD_REF_SYS表のIS_LEGACY列の値がFALSE
である投影座標参照系に結果を制限します。このパラメータにNULL値を指定すると、結果の判断時に、SDO_COORD_REF_SYS表のIS_LEGACY列の値は無視されます。
座標参照系を一致対象にする場合、WKT値がどの程度一致する必要があるかを示す数値を指定します。デフォルト値は0.000001です。WKT項目の各数値は、参照SRIDのWKT内の対応する値と比較されるか、このファンクションで指定するパラメータのリスト内の対応する値と比較されます。すべてのケースで差がmax_rel_num_difference
の値以下の場合は、この座標参照系のSRIDが結果に含まれます。
使用上の注意
このファンクションは、VARRAY(1048576) OF NUMBER
として定義されるSDO_SRID_LIST型のオブジェクトを戻します。
well-knownテキスト(WKT)形式の詳細は、6.8.1.1項を参照してください。
例
次の例では、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.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値(数値)またはNULL値を含みます(「使用上の注意」を参照)。
地理座標系のEPGS SRID値。coord_ref_sys_kind
パラメータの値に応じて、地理SRID値を持つ座標系の存在を確認するか、またはこのSRID値を持つ座標系に基づく投影座標系のSRID値を検索します。
投影座標系のEPGS SRID値。
データID値。coord_ref_sys_kind
パラメータの値に応じて、このデータに基づく地理座標系または投影座標系のSRIDを検索します。
楕円体のID値。coord_ref_sys_kind
パラメータの値に応じて、この楕円体に基づく地理座標系または投影座標系のSRIDを検索します。
本初子午線のID値。coord_ref_sys_kind
パラメータの値に応じて、この本初子午線に基づく地理座標系または投影座標系のSRIDを検索します。
投影方法のID値。この投影方法に基づく投影座標系のSRIDを検索します。
投影操作のID値。この投影操作に基づく投影座標系のSRIDを検索します。投影操作は、特定の投影パラメータと組み合された投影方法です。
座標系の種類またはカテゴリ。この値は、SDO_COORD_REF_SYS表(6.7.9項を参照)のCOORD_REF_SYS_KIND列の文字列値である必要があります。例: GEOGRAPHIC2D
およびPROJECTED
半長径のID値。coord_ref_sys_kind
パラメータの値に応じて、この半長径に基づく地理座標系または投影座標系のSRIDを検索します。
半短径のID値。coord_ref_sys_kind
パラメータの値に応じて、この半短径に基づく地理座標系または投影座標系のSRIDを検索します。
逆フラット化(単位は「unity」)。coord_ref_sys_kind
パラメータの値に応じて、この逆フラット化に基づく地理座標系または投影座標系のSRIDを検索します。
投影パラメータ。このパラメータは、投影方法に基づきます。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));
座標参照系を一致対象にする場合、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
説明
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.FROM_USNG(
usng IN VARCHAR2,
srid IN NUMBER,
datum IN VARCHAR2 DEFAULT 'NAD83') RETURN SDO_GEOMETRY;
使用上の注意
Oracle SpatialでサポートされるU.S. National Gridの詳細は、6.11項を参照してください。
空間点ジオメトリを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)
パラメータ
3次元のジオメトリ・オブジェクトを指定します。
ターゲット座標参照系のSRIDを指定します。この値は、NULLまたはSDO_COORD_REF_SYS表(6.7.9項を参照)のSRID列の値である必要があります。
例
次の例では、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.MAKE_3D(
geom2d IN SDO_GEOMETRY,
height IN NUMBER DEFAULT 0,
target_srid IN NUMBER DEFAULT NULL) RETURN SDO_GEOMETRY;
パラメータ
2次元のジオメトリ・オブジェクトを指定します。
戻されたジオメトリ内のすべての頂点に対して、3番目の次元で使用される高さの値を指定します。このパラメータがNULLであるか、または指定されていない場合は、すべての頂点に対して高さ0(ゼロ)が使用されます。
ターゲット座標参照系のSRIDを指定します。この値は、NULLまたはSDO_COORD_REF_SYS表(6.7.9項を参照)のSRID列の値である必要があります。
例
次の例では、cola_a
の2次元ジオメトリを3次元ジオメトリに変換します。(例では、6.13項の例の定義を使用しています。)
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_COORD_REF_SYS表(6.7.9項を参照)のSRID列の値に一致する値を戻します。
指定したOracle Spatial SRID値に対応するEPSG SRID値を戻すには、SDO_CS.MAP_ORACLE_SRID_TO_EPSGファンクションを使用します。
パラメータ
Oracle Spatial SRID値を指定します。この値は、SDO_COORD_REF_SYS表(6.7.9項を参照)のLEGACY_CODE列の値と一致する必要があります。
使用上の注意
このファンクションは、EPSG座標参照系のSRIDを戻します。座標参照系のEPSG SRID値は、EPSG座標参照系表のCOORD_REF_SYS_CODEフィールドに示されます。
指定したEPSG SRID値に対応するOracle Spatial SRID値を戻すには、SDO_CS.MAP_EPSG_SRID_TO_ORACLEファンクションを使用します。
構文
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);
パラメータ
操作のID番号を指定します。この値は、SDO_CS.ADD_PREFERENCE_FOR_OPプロシージャへのコールで指定したop_id
値と一致する必要があります。
ソース座標参照系のSRIDを指定します。この値は、SDO_CS.ADD_PREFERENCE_FOR_OPプロシージャへのコールで指定したsource_crs
、target_crs
およびuse_case
の組合せのsource_crs
値と一致する必要があります。
ターゲット座標参照系のSRIDを指定します。SDO_CS.ADD_PREFERENCE_FOR_OPプロシージャへのコールで指定したsource_crs
、target_crs
およびuse_case
の組合せのtarget_crs
値と一致する必要があります。
このプリファレンスに関連付けられたユースケースの名前を指定します。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表(6.7.24項を参照)から1つ以上の行を削除します。use_case
がNULL以外の場合、このプロシージャはSDO_PREFERRED_OPS_USER表(6.7.25項を参照)から1つ以上の行を削除します。
説明
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.TO_USNG(
geom IN SDO_GEOMETRY,
accuracy_in_meters IN NUMBER,
datum IN VARCHAR2 DEFAULT 'NAD83') RETURN VARCHAR2;
パラメータ
表現をU.S. National Grid形式で表される点に変換する点ジオメトリを指定します。入力ジオメトリには、NULL以外の有効なSRID(SDO_COORD_REF_SYS表のSRID列の値)を指定する必要があります(6.7.9項を参照)。
点の位置の精度をm単位で指定します。負または正の方向に10の累乗単位で指定します(0.001、0.01、0.1、1、10、100、1000など)。これ以外の値を指定すると、Spatialによって内部調節されるため、結果が予想した値と異なることがあります。
点のU.S. National Grid座標がベースとするデータの名前を指定します。NAD83
またはNAD27
のいずれかを指定する必要があります。デフォルト値はNAD83
です。
使用上の注意
Oracle SpatialでサポートされるU.S. National Gridの詳細は、6.11項を参照してください。
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.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;
パラメータ
他の座標系を使用して表現を変換するジオメトリを指定します。入力ジオメトリには、NULL以外の有効なSRID(SDO_COORD_REF_SYS表のSRID列の値)を指定する必要があります(6.7.9項を参照)。
変換に使用する座標系のSRIDを指定します。この値は、SDO_COORD_REF_SYS表(6.7.9項を参照)のSRID列の値である必要があります。
変換に使用する座標系の名前を指定します。この値は、SDO_COORD_REF_SYS表(6.7.9項を参照)のCOORD_REF_SYS_NAME列の正確に指定された値である必要があります。
この変換に関連付けるユースケースの名前を指定します。文字列USE_SPHERICAL
を指定すると、変換は楕円体の計算ではなく球体の計算を使用するので、対応するGoogle Mapsおよびその他のサード・パーティのツールは球体の計算に基づいた投影を使用することになります。ユースケースの詳細は、6.4項を参照してください。Google Mapsに関する考慮事項は6.12項を参照してください。
変換計画を指定します。TFM_PLANオブジェクト型の詳細は、6.6項を参照してください。
使用上の注意
変換は、2つの異なる地形参照座標系間または2つの異なるローカル座標系間のみで実行できます。
使用する座標系の種類に関係なく、円および円弧の変換はサポートされていません。
geom
、to_srid
またはto_srname
が無効な場合は例外が発生します。このファンクションに有効なgeom
は、その定義にSDO_COORD_REF_SYS表(6.7.9項を参照)のSRID列の値と一致するSRIDの値が含まれている必要があります。
例
次の例では、cola_c
ジオメトリを、SRID値8199を使用する表現に変換します。(例では、6.13項の例の定義を使用しています。)
-- 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.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);
パラメータ
ジオメトリを変換するレイヤー(column_in
)を含む表を指定します。
変換するジオメトリを含む、table_in
の列を指定します。
変換の結果作成される表で、変換結果を含みます。この表の形式については、「使用上の注意」を参照してください。
変換に使用する座標系のSRIDを指定します。to_srid
は、SDO_COORD_REF_SYS表(6.7.9項を参照)のSRID列の値である必要があります。
変換計画を指定します。TFM_PLANオブジェクト型の詳細は、6.6項を参照してください。
変換を実行する際に変換ルールを適用するユースケースの名前を指定します。ユースケースの詳細は、6.4項を参照してください。
使用上の注意
変換は、2つの異なる地形参照座標系間または2つの異なるローカル座標系間のみで実行できます。
次の場合に例外が発生します。
table_in
が存在しない、または表にcolumn_in
が存在しない場合
column_in
のジオメトリのSDO_SRID値がNULLまたは無効である場合
table_out
がすでに存在する場合
to_srid
が無効な場合
table_out
表は、プロシージャによって作成され、変換したジオメトリごとに1行書き込まれます。この表には、表21-2に示す列があります。
例
次の例では、COLA_MARKETS_CS表のshape
列のジオメトリをSRID値8199を使用する表現に変換します。変換されたジオメトリは、新しく作成されたCOLA_MARKETS_CS_8199表に格納されます。(例では、6.13項の例の定義を使用しています。)
-- 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);
6.13項の例6-18は、COLA_MARKETS_CSおよびCOLA_MARKETS_CS_8199の両方の表のジオメトリ・オブジェクトの座標表示を含みます。
パラメータ
well-knownテキスト(WKT)の説明を更新する座標系のSRIDを指定します。指定する値のエントリは、SDO_COORD_REF_SYS表(6.7.9項を参照)に含まれている必要があります。
使用上の注意
このプロシージャは、指定したSRIDおよびすべての依存SRIDのWKTの説明を更新します。たとえば、SRID 4326 (WGS84測地座標系)の場合、この測地座標系を使用するすべてのEPSG座標系が更新されます。
well-knownテキスト(WKT)の説明を更新するプロシージャの使用方法については、6.8.1.3項を参照してください。
例
次の例では、楕円体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...
パラメータ
座標変換操作のSRIDのIDを指定します。この値は、SDO_COORD_OP_PARAM_VALS表(6.7.5項を参照)のCOORD_OP_ID列の値と一致する必要があります。
パラメータ
本初子午線のIDを指定します。この値は、SDO_PRIME_MERIDIANS表(6.7.26項を参照)のPRIME_MERIDIAN_ID列の値と一致する必要があります。
パラメータ
well-knownテキスト(WKT)の説明を検査する座標系のSRIDを指定します。指定する値のエントリは、SDO_COORD_REF_SYS表(6.7.9項を参照)に含まれている必要があります。
使用上の注意
このファンクションは、WKTの説明が有効である場合は文字列「TRUE」を戻します。WKTの説明が無効である場合、このファンクションは「FALSE (<position-number>)」という形式の文字列を戻します。ここで、<position-number>は、WKTの説明内で、最初のエラーが発生した文字の位置の番号です。
WKTの説明が6.8.1.1項に示す要件を満たすかどうかが確認されます。
例
次の例では、SRID 81989000に関連付けられた座標系のWKTの説明を検査します。結果は、無効な状態の原因部分(無効な状態の最初の原因)がWKTの説明内の文字位置181から始まっていることを示しています。(SRID 81989000は、既定の座標系には関連付けられていません。これは、MDSYS.CS_SRS表のテスト・バージョンに挿入された意図的に無効な状態の座標系のためのものであり、Oracle Spatialに付属するMDSYS.CS_SRS表には含まれていません。)
SELECT SDO_CS.VALIDATE_WKT(81989000) FROM DUAL; SDO_CS.VALIDATE_WKT(81989000) -------------------------------------------------------------------------------- FALSE (181)