この項では、Oracle Spatial and GraphのLRS APIでサポートされている線形参照処理について説明します。
メジャー情報付きのジオメトリ・セグメントを作成するには、次の2つの方法があります。
ジオメトリ・セグメントを作成し、メジャーを明示的に割り当てます。
ジオメトリ・セグメントに、開始点と終了点および他のメジャーを付けて、昇順または降順に定義します。ジオメトリ・セグメント内に不明な(割り当てられていない)メジャー(NULL値)を持つ形状点メジャーは、それらの位置および距離分布に従って自動的に移入されます。
図7-8に、ジオメトリ・セグメントを定義する方法を示します。
LRS処理を進める前に、LRSセグメントを定義する(または、LRSセグメントがすでに存在している)必要があります。指定されたメジャーからの位置を求めるために、開始、終了および他の割り当てられたメジャーが存在する必要があります。メジャー値が割り当てられない場合は、中間の形状点のメジャー情報が自動的に移入されます。
2つのジオメトリ・セグメントを連結して、1つの新しいジオメトリ・セグメントを作成できます(図7-10のcを参照)。図7-10のcに示すジオメトリ・セグメントは続いていますが、空間的に連続していなくてもかまいません。(セグメントが空間的に続いていない場合、連結された結果は複数線ストリングになります。)2つ目のジオメトリ・セグメントのメジャーが移動するため、1つ目のセグメントの終了メジャーは、2つ目のセグメントの開始メジャーと同じになります。連結の結果のセグメントの方向は、元の2つのジオメトリと同じになります。
図7-10のクリップ、分割および連結処理でのメジャーの割当てを、図7-11に示します。メジャー情報およびセグメント方向は、一貫性が保持されます。処理の完了時に、自動的にメジャー情報とセグメントが割り当てられます。
図7-12に示すとおり、連結の結果できるジオメトリ・セグメントの方向は、必ず1つ目のセグメント(SDO_LRS.CONCATENATE_GEOM_SEGMENTSファンクションへのコールのgeom_segment1
)の方向です。
SDO_LRS.CONCATENATE_GEOM_SEGMENTSファンクションを使用して2つの接続したセグメントを明示的に連結する他に、一括連結を実行できます。一括連結では、SDO_AGGR_LRS_CONCAT空間集計ファンクションを使用して、1つの列(レイヤー)に含まれるすべての接続したジオメトリ・セグメントを連結できます。(「空間集計ファンクション」のSDO_AGGR_LRS_CONCAT空間集計ファンクションの説明および例を参照。)
ジオメトリ・セグメントに対して線形スケール変更処理を実行すると、新しいジオメトリ・セグメントを作成できます。図7-13に、ジオメトリ・セグメントのスケール変更におけるマッピング関係を示します。
通常、ジオメトリ・セグメントのスケール変更には、新しく作成したジオメトリ・セグメントのメジャーの再配置が含まれます。ただし、スケール変更係数が負の場合、メジャーがジオメトリ・セグメント方向(形状点の順序によって定義される)に増加するように、形状点の順序を逆にする必要があります。
スケール変更処理は、次の処理を任意に組み合せて実行できます。
メジャー情報の変換(シフト)。(たとえば、同じ値をMsとMeに追加してM'sとM'eを取得。)
メジャー情報の反転。(M's = Me、M'e = Ms、Mshift = 0にするなど。)
メジャー情報の簡単なスケール変更。(Mshift = 0にするなど。)
これらの処理の例については、「SDO_LRSパッケージ(線形参照システム)」のSDO_LRS.SCALE_GEOM_SEGMENT、SDO_LRS.TRANSLATE_MEASURE、SDO_LRS.REVERSE_GEOMETRYおよびSDO_LRS.REDEFINE_GEOM_SEGMENTサブプログラムの「使用上の注意」および「例」を参照してください。
ジオメトリ・セグメントに対してオフセットを設定すると、新しいジオメトリ・セグメントを作成できます。図7-14に、ジオメトリ・セグメントのオフセット設定におけるマッピング関係を示します。
図7-14に示すオフセット設定では、結果のジオメトリ・セグメントが、元のセグメントの指定された開始および終了メジャーから5単位でオフセット設定されています。
詳細は、「SDO_LRSパッケージ(線形参照システム)」のSDO_LRS.OFFSET_GEOM_SEGMENTファンクションの「使用上の注意」および「例」を参照してください。
ジオメトリ・セグメントでメジャーおよびオフセットで示された点の位置を検索できます(図7-15を参照)。
ジオメトリ・セグメント上の特定のメジャーには、必ず一意の位置があります。オフセットが与えられたときに、メジャーによって表現された点がジオメトリ・セグメントの形状点上にある場合、あいまいさが発生します(図7-16を参照)。
図7-16に示すとおり、ジオメトリ・セグメント上の形状点のオフセット円弧は、すべての点が形状点から等しい最短距離にある円弧です。この結果、オフセット円弧上のすべての点は、メジャーとオフセットの同じ組合せで表されます。この1対多のマッピング問題を解決するために、オフセット円弧の中間点が戻されます。
標準の線ストリング・フォーマットから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では、メジャー次元値に下線が付いています。
点ジオメトリを変換すると、戻されるジオメトリの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パッケージ(線形参照システム)」のリファレンス情報も参照してください。