6.4 EPSGモデルとSpatial

Oracle Spatialの座標系のサポートは、European Petroleum Survey Group (EPSG)のデータ・モデルおよびデータセットに基づいています(ただし、常に同じとはかぎりません)。

詳細は、https://epsg.orgを参照してください。また、EPSG測地パラメータ・データセットのダウンロードには、「README」が含まれており、エンティティ関連(E-R)ダイアグラムが示されています。Oracle Spatialによって採用されるアプローチには、標準化、拡張サポートおよび柔軟性の利点があります。

  • EPSGモデルは包括的で広く受け入れられているデータ表現の標準であるため、このモデルを扱い慣れたユーザーは、Spatialの記憶域および操作をより簡単に理解できます。

  • サポートされる座標系と、それに関連するデータ、楕円体および投影図が増加しています。たとえば、EPSGの一部の測地座標系および投影座標系については、それに対応する座標系が以前のリリースのSpatialではサポートされていませんでした。このような座標系が追加されたことで、サポートされる座標系が拡大しました。

  • データ変換が柔軟になりました。あるソースとターゲット座標系間で使用可能な変換パスはOracle定義の1種類のみではなく、代替パスを、特定の領域に対して適用するように指定したり(ユースケース)、システム全体のデフォルトとして指定できます。

    この項の後半では、この柔軟性について説明します。

データ変換(ある座標系のデータを別の座標系に変換)に適用する変換ルールを指定できるようになりました。以前のリリースおよび今回のリリースのデフォルトでは、Spatialは、事前定義済の中間変換ステップを使用して、指定されたソースとターゲットの座標系にのみ基づいて変換を実行します。このデフォルトの処理は、正しい変換連鎖(優先する変換連鎖)が1つしか存在しないことを前提としています。

デフォルトでは、Spatialは、ソース座標系とターゲット座標系の特定のペア間でサポートされている変換ごとに特定の変換方法を適用します。たとえば、ある座標系からWGS 84 (経度/緯度)座標系への変換メソッドは500種類以上サポートされています(WGS 84のEPSG SRID値は4326)。一例として、SRID 4605からSRID 4326への変換の場合、SpatialはSDO_COORD_OPS表に示されているようにCOORD_OP_ID値が1445の変換方法を使用できます(SDO_COORD_OPS表を参照)。この表には、座標系間の変換操作ごとに1つの行が含まれています。

ただし、任意のソース/ターゲットSRIDの組合せに対して別のメソッドを指定(Oracleから提供されているメソッドの中から選択)すると、デフォルトの変換を無視できます。ある変換をシステム全体のデフォルトとして新しく指定することもできます。また、名前付きのユースケースに変換を関連付け、空間ジオメトリのレイヤーを変換する際にそのユースケースを指定することもできます。(ユースケースは、単に、使用例や適用範囲に対して付けられる「Project XYZ」、「Mike's Favorite Transformations」などの名前です。ユースケースはデータベース・ユーザーやスキーマとは関係しません。)

ある変換を、システム全体のデフォルトに指定する場合、またはユースケースに関連付ける場合は、SDO_CS.ADD_PREFERENCE_FOR_OPプロシージャを使用します。以前に指定したプリファレンスを削除する場合は、SDO_CS.REVOKE_PREFERENCE_FOR_OPプロシージャを使用します。

座標系変換を実行する場合、Spatialはこれらの一般的なステップに従って、使用する特定の変換を決定します:

  1. ユースケースが指定されている場合は、そのユースケースに関連付けられている変換が適用されます。

  2. ユースケースが指定されていない場合、指定されたソース/ターゲット座標系のペアに対して作成されたユーザー定義によるシステム全体の変換が存在すると、その変換が適用されます。

  3. ユースケースが指定されておらず、指定されたソース/ターゲット座標系のペアに対するユーザー定義の変換も存在しない場合の動作は、SDO_CS.CREATE_OBVIOUS_EPSG_RULESプロシージャなどによってEPSGルールが作成済かどうかによって異なります。

    • EPSGルールが作成済で、この変換に対してEPSGルールが定義されている場合は、そのEPSG変換が適用されます。

    • EPSGルールが作成されていないか、または作成されていてもこの変換に対してEPSGルールが定義されていない場合は、Spatialのデフォルトの変換が適用されます。

Spatialで使用されるEPSGデータセットのバージョン番号を返すには、SDO_CS.GET_EPSG_DATA_VERSIONファンクションを使用します。