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

前
次

7.5 LRS処理

この項では、Oracle Spatial and GraphのLRS APIでサポートされている線形参照処理について説明します。

7.5.1 ジオメトリ・セグメントの定義

メジャー情報付きのジオメトリ・セグメントを作成するには、次の2つの方法があります。

  • ジオメトリ・セグメントを作成し、メジャーを明示的に割り当てます。

  • ジオメトリ・セグメントに、開始点と終了点および他のメジャーを付けて、昇順または降順に定義します。ジオメトリ・セグメント内に不明な(割り当てられていない)メジャー(NULL値)を持つ形状点メジャーは、それらの位置および距離分布に従って自動的に移入されます。

図7-8に、ジオメトリ・セグメントを定義する方法を示します。

図7-8 ジオメトリ・セグメントの定義

図7-8の説明が続きます
図7-8「ジオメトリ・セグメントの定義」の説明

LRS処理を進める前に、LRSセグメントを定義する(または、LRSセグメントがすでに存在している)必要があります。指定されたメジャーからの位置を求めるために、開始、終了および他の割り当てられたメジャーが存在する必要があります。メジャー値が割り当てられない場合は、中間の形状点のメジャー情報が自動的に移入されます。

7.5.2 ジオメトリ・セグメントの再定義

ジオメトリ・セグメントを再定義し、開始点と終了点の間で、すべての形状点の既存のメジャーを、自動計算されたメジャーに置き換えることができます。セグメントの再定義は、明示的に指定された1つ以上のメジャーにエラーが発生した場合や、メジャーを均等に割り当てなおす場合に有効です。

図7-9に、既存(以前)の指定されたメジャー値が均等ではないセグメントの再定義を示します。

図7-9 ジオメトリ・セグメントの再定義

図7-9の説明が続きます
図7-9「ジオメトリ・セグメントの再定義」の説明

図7-9に示す再定義後のセグメントでは、移入メジャーは、セグメントに沿って一定間隔になっています。

7.5.3 ジオメトリ・セグメントのクリップ

ジオメトリ・セグメントをクリップして(図7-10のaを参照)、既存のジオメトリ・セグメントから新しいジオメトリ・セグメントを作成できます。

図7-10 ジオメトリ・セグメントのクリップ、分割および連結

図7-10の説明が続きます
図7-10「ジオメトリ・セグメントのクリップ、分割および連結」の説明

図7-10のaでは、セグメントがより大きいセグメントの一部から作成されます。新しいセグメントは独自の開始点および終了点を持ち、方向は元の大きいセグメントと同じです。

7.5.4 ジオメトリ・セグメントの分割

ジオメトリ・セグメントを分割して、2つの新しいジオメトリ・セグメントを作成できます(図7-10のbを参照)。新しい各セグメントの方向は、元のセグメントと同じです。

注意:

図7-10以降のいくつかの図にあるセグメント間の切れ目は、セグメントの分割や連結を示しています。それぞれの切れ目は、セグメントが2つあることを強調しています。ただし、2つのセグメント(図7-10のbおよびcのセグメント1およびセグメント2)は、実際には続いています。セグメントが続いているかどうかを判断するには、許容差(「許容差」を参照)を考慮します。

7.5.5 ジオメトリ・セグメントの連結

2つのジオメトリ・セグメントを連結して、1つの新しいジオメトリ・セグメントを作成できます(図7-10のcを参照)。図7-10のcに示すジオメトリ・セグメントは続いていますが、空間的に連続していなくてもかまいません。(セグメントが空間的に続いていない場合、連結された結果は複数線ストリングになります。)2つ目のジオメトリ・セグメントのメジャーが移動するため、1つ目のセグメントの終了メジャーは、2つ目のセグメントの開始メジャーと同じになります。連結の結果のセグメントの方向は、元の2つのジオメトリと同じになります。

図7-10のクリップ、分割および連結処理でのメジャーの割当てを、図7-11に示します。メジャー情報およびセグメント方向は、一貫性が保持されます。処理の完了時に、自動的にメジャー情報とセグメントが割り当てられます。

図7-11 ジオメトリ・セグメント処理でのメジャーの割当て

図7-11の説明が続きます
図7-11「ジオメトリ・セグメント処理でのメジャーの割当て」の説明

図7-12に示すとおり、連結の結果できるジオメトリ・セグメントの方向は、必ず1つ目のセグメント(SDO_LRS.CONCATENATE_GEOM_SEGMENTSファンクションへのコールのgeom_segment1)の方向です。

図7-12 連結時のセグメント方向

図7-12の説明が続きます
図7-12「連結時のセグメント方向」の説明

SDO_LRS.CONCATENATE_GEOM_SEGMENTSファンクションを使用して2つの接続したセグメントを明示的に連結する他に、一括連結を実行できます。一括連結では、SDO_AGGR_LRS_CONCAT空間集計ファンクションを使用して、1つの列(レイヤー)に含まれるすべての接続したジオメトリ・セグメントを連結できます。(「空間集計ファンクション」SDO_AGGR_LRS_CONCAT空間集計ファンクションの説明および例を参照。)

7.5.6 ジオメトリ・セグメントのスケール変更

ジオメトリ・セグメントに対して線形スケール変更処理を実行すると、新しいジオメトリ・セグメントを作成できます。図7-13に、ジオメトリ・セグメントのスケール変更におけるマッピング関係を示します。

図7-13 ジオメトリ・セグメントのスケール変更

図7-13の説明が続きます
図7-13「ジオメトリ・セグメントのスケール変更」の説明

通常、ジオメトリ・セグメントのスケール変更には、新しく作成したジオメトリ・セグメントのメジャーの再配置が含まれます。ただし、スケール変更係数が負の場合、メジャーがジオメトリ・セグメント方向(形状点の順序によって定義される)に増加するように、形状点の順序を逆にする必要があります。

スケール変更処理は、次の処理を任意に組み合せて実行できます。

  • メジャー情報の変換(シフト)。(たとえば、同じ値をMsとMeに追加してM'sとM'eを取得。)

  • メジャー情報の反転。(M's = Me、M'e = Ms、Mshift = 0にするなど。)

  • メジャー情報の簡単なスケール変更。(Mshift = 0にするなど。)

これらの処理の例については、「SDO_LRSパッケージ(線形参照システム)」SDO_LRS.SCALE_GEOM_SEGMENTSDO_LRS.TRANSLATE_MEASURESDO_LRS.REVERSE_GEOMETRYおよびSDO_LRS.REDEFINE_GEOM_SEGMENTサブプログラムの「使用上の注意」および「例」を参照してください。

7.5.7 ジオメトリ・セグメントのオフセット設定

ジオメトリ・セグメントに対してオフセットを設定すると、新しいジオメトリ・セグメントを作成できます。図7-14に、ジオメトリ・セグメントのオフセット設定におけるマッピング関係を示します。

図7-14 ジオメトリ・セグメントのオフセット設定

図7-14の説明が続きます
図7-14「ジオメトリ・セグメントのオフセット設定」の説明

図7-14に示すオフセット設定では、結果のジオメトリ・セグメントが、元のセグメントの指定された開始および終了メジャーから5単位でオフセット設定されています。

詳細は、「SDO_LRSパッケージ(線形参照システム)」SDO_LRS.OFFSET_GEOM_SEGMENTファンクションの「使用上の注意」および「例」を参照してください。

7.5.8 ジオメトリ・セグメント上の点の位置の確認

ジオメトリ・セグメントでメジャーおよびオフセットで示された点の位置を検索できます(図7-15を参照)。

図7-15 メジャーおよびオフセットを持つセグメント上の点の位置

図7-15の説明が続きます
図7-15「メジャーおよびオフセットを持つセグメント上の点の位置」の説明

ジオメトリ・セグメント上の特定のメジャーには、必ず一意の位置があります。オフセットが与えられたときに、メジャーによって表現された点がジオメトリ・セグメントの形状点上にある場合、あいまいさが発生します(図7-16を参照)。

図7-16 オフセットで発生する位置参照のあいまいさ

図7-16の説明が続きます
図7-16「オフセットで発生する位置参照のあいまいさ」の説明

図7-16に示すとおり、ジオメトリ・セグメント上の形状点のオフセット円弧は、すべての点が形状点から等しい最短距離にある円弧です。この結果、オフセット円弧上のすべての点は、メジャーとオフセットの同じ組合せで表されます。この1対多のマッピング問題を解決するために、オフセット円弧の中間点が戻されます。

7.5.9 ジオメトリ・セグメント上の点の投影

ジオメトリ・セグメントに対応する点の投影点を検索できます。投影する点は、セグメント上にあってもセグメント外にあってもかまいません。点がセグメント上にある場合は、点およびその投影点は同じです。

投影は、図7-15に示す点の位置確認の逆の処理です。点の位置確認と同様に、形状点のオフセット円弧上のすべての点が同じ投影点(形状点)、メジャーおよびオフセットを持ちます(図7-16を参照)。点に対して複数の投影点がある場合、開始点から最初の点が戻されます(図7-17の図の投影点1)。

7.5.10 LRSジオメトリの変換

標準の線ストリング・フォーマットからLRSフォーマットにジオメトリを変換できます。また、その逆も可能です。既存の線ストリング・データが大量にある場合、すべてのLRSセグメントを手動で作成するより、変換ファンクションを使用すると便利です。ただし、特定のアプリケーションでLRSセグメントを標準の線ストリングに変換する機能も提供しています。

ファンクションによって、次のものを変換できます。

  • 個々の線ストリングまたは点

    標準フォーマットからLRSフォーマットへの変換では、メジャー次元(デフォルトではM)が追加され、それぞれの点にメジャー情報が付けられます。LRSフォーマットから標準フォーマットへの変換では、メジャー次元およびメジャー情報が削除されます。どちらの場合も、USER_SDO_GEOM_METADATAビューの次元情報(DIMINFO)のメタデータには影響しません。

  • レイヤー(列にあるすべてのジオメトリ)

    標準フォーマットからLRSフォーマットへの変換では、メジャー次元(デフォルトではM)が追加されますが、それぞれの点にメジャー情報は付けられません。LRSフォーマットから標準フォーマットへの変換では、メジャー次元およびメジャー情報が削除されます。どちらの場合も、USER_SDO_GEOM_METADATAビューの次元情報(DIMINFO)のメタデータは、必要に応じて変更されます。

  • 次元情報(DIMINFO)

    USER_SDO_GEOM_METADATAビューの次元情報(DIMINFO)のメタデータは、必要に応じて変更されます。たとえば、XおよびY次元(SDO_DIM_ELEMENT)を持つ標準の次元配列をLRS次元配列に変換すると、M次元(SDO_DIM_ELEMENT)が追加されます。

図7-18に、SDO_LRS.CONVERT_TO_LRS_GEOMファンクションを使用して、標準線ストリングをLRS線ストリングに変換する場合のメジャー情報の追加を示します。図7-18では、メジャー次元値に下線が付いています。

図7-18 標準フォーマットからLRSフォーマットへの線ストリングの変換

図7-18の説明が続きます
図7-18「標準フォーマットからLRSフォーマットへの線ストリングの変換」の説明

点ジオメトリを変換すると、戻されるジオメトリのSDO_POINT属性(「SDO_POINT」を参照)に次のように影響します。

  • 標準の点をLRS点に変換すると、入力ジオメトリのSDO_POINT属性情報が結果のジオメトリのSDO_ELEM_INFOおよびSDO_ORDINATES属性(「SDO_ELEM_INFO」および「SDO_ORDINATES」を参照)の設定に使用され、結果のジオメトリのSDO_POINT属性がNULLに設定されます。

  • LRS点を標準の点に変換すると、入力ジオメトリのSDO_ELEM_INFOおよびSDO_ORDINATES属性(「SDO_ELEM_INFO」および「SDO_ORDINATES」を参照)の情報が結果のジオメトリのSDO_POINT属性情報の設定に使用され、結果のジオメトリのSDO_ELEM_INFOおよびSDO_ORDINATES属性がNULLに設定されます。

変換ファンクションの一覧は、「SDO_LRSパッケージ(線形参照システム)」表24-3を参照してください。各変換ファンクションについては、「SDO_LRSパッケージ(線形参照システム)」のリファレンス情報も参照してください。