この項では、Spatial and Graphでサポートされる線形参照に関連する重要な用語および概念について説明します。
ジオメトリ・セグメントは、Spatial and GraphにおけるLRSの基本的な要素です。ジオメトリ・セグメントは、次のいずれかのジオメトリです。
線ストリング: 順序付けされ、分岐のない連続するジオメトリ(単純な道路など)
複数線ストリング: 非接続線ストリング(湖やバイパス道路によって途切れた高速道路など)
ポリゴン(開始および終了が同一の点である競技トラックや観光ツアー・ルートなど)
ジオメトリ・セグメントは、開始点および終了点の開始メジャーおよび終了メジャーを含む必要があります。また、ジオメトリ・セグメント上の対象点のメジャー(高速道路の出口など)も割り当てられます。これらのメジャーは、ユーザーによって割り当てられるか、または既存のジオメトリ・セグメントから導出されます。図7-1に、4つの線セグメントと1つの円弧で構成されるジオメトリ・セグメントの例を示します。ジオメトリ・セグメント上の点は、3つの数値(x, y, m)で表します。xおよびyは位置を示し、mはメジャーを示します(図7-1で下線が付いた値がメジャー値を表します)。
形状点は、LRSセグメント作成時に指定される点で、メジャー情報が割り当てられます。Oracle Spatial and Graphでは、線セグメントは開始点および終了点で表され、円弧は3つの点(開始点、中間点および終了点)で表されます。形状点として3つの点を指定する必要がありますが、この3つの点にメジャー情報を格納する場合は、形状点としてその他の点を指定することもできます(たとえば、高速道路の直線部分の中間にある出口などです)。
形状点は、セグメント方向(たとえば、回転やカーブなど)を示す場合やメジャー情報が格納さる対象点を識別する場合に使用できます。
形状点は、LRSの距離標または参照標とは直接関連しませんが、内部的な参照点として使用されます。形状点のメジャー情報は、SDO_LRS.DEFINE_GEOM_SEGMENTプロシージャ(「SDO_LRSパッケージ(線形参照システム)」を参照)を使用したLRSセグメントの定義時に自動的に移入されます。
ジオメトリ・セグメント上の点のメジャーは、ジオメトリ・セグメントの開始点(値が増加する場合)または終了点(値が減少する場合)から測定された点までの(メジャー次元の)線形距離です。メジャー情報は、それらの距離と同じ位取りでなくてもかまいません。ただし、メジャーと距離の線形マッピング関係は、常に保たれる必要があります。
LRSファンクションは、メジャーのかわりにオフセットを使用して、線形フィーチャに沿って測定した距離を表す場合もあります。線形参照システムでは、Oracle Spatial and GraphのLRSがメジャーとして参照するものを表すためにオフセットを使用する場合もありますが、Oracle Spatial and Graphでは、オフセットはメジャーとは別の意味を持ちます。詳細は、「オフセット」を参照してください。
ジオメトリ・セグメント上の点のオフセットとは、点とジオメトリ・セグメント間の垂直距離です。点がセグメント方向の左側にある場合、オフセット値は正、右側にある場合は負です。また、点がジオメトリ・セグメント上にある場合、オフセットは0 (ゼロ)です。
オフセットの測定単位は、ジオメトリ・セグメントに関連付けられた座標系の測定単位と同じです。測地データの場合、デフォルトの測定単位はmです。
図7-2に、点がメジャーおよびオフセット情報とともにジオメトリ・セグメント上にどのように位置付けられるかを示します。オフセットをメジャーとともに割り当てることによって、ジオメトリ・セグメント上の点のみでなく、ジオメトリ・セグメントに垂直な点を位置付けることも可能です。
ジオメトリ・セグメントにまだ割り当てられていないメジャーがある場合、距離分布に基づいて自動的に移入されます。これは、不明なメジャー(Oracle Spatial and GraphではNULL)を持つジオメトリ・セグメントに対するLRS処理の前に行われます。ジオメトリ・セグメントにLRS処理を行うと、ジオメトリ・セグメントに関連付けられたメジャー情報が戻されます。ジオメトリ・セグメント上の点のメジャーは、前後のメジャーまたは位置間の線形マッピング関係に基づいて取得できます。詳細は、図7-3および図7-4を参照してください。
メジャーは、割り当てられたメジャーの間で均等に配置されます。ただし、ジオメトリ・セグメント上の対象点に対して割り当てられるメジャーは、均等でなくてもかまいません。これによって、エラーの蓄積や不正確なデータ・ソースの問題を排除できます。
また、割り当てられたメジャーは、実際の距離を反映する必要はなく(たとえば、見積り運転時間を反映できます)、メジャーの有効範囲内の有効な値を使用できます。図7-5に、割り当てられたメジャーの値が不均等で、距離が様々な場合のメジャーの移入の例を示します。
メジャーは、必ずセグメント方向に増分的に移入されます。これによって、以降のLRS処理のパフォーマンスが向上します。
線形フィーチャは、線形セグメントの論理セットとして処理できる空間オブジェクトです。輸送アプリケーションにおける高速道路や、公共事業アプリケーションにおける流通ルートなどが、線形フィーチャの例です。線形フィーチャ、ジオメトリ・セグメントおよびLRS点の関係を、図7-6に示します。この図では、1つの線形フィーチャが3つのジオメトリ・セグメントで構成され、3つのLRS点は最初のセグメントに示されています。
LRSジオメトリが複数線ストリングまたは穴のあるポリゴンの場合、SDO_LRS.DEFINE_GEOM_SEGMENTプロシージャおよびSDO_LRS.CONVERT_TO_LRS_GEOMファンクションは、あるセグメントの終了点と、その次のセグメントの(切れ目によって分離されている)開始点に、デフォルトで同じメジャー値を割り当てます(ただし、後で各点に異なる値を割り当てることは可能です)。したがって、このようなジオメトリの場合、デフォルトでは、異なるセグメントに同じメジャー値が割り当てられることになります。このような場合、LRSサブプログラムは、指定されたメジャーを持つ最初の点を選択します(ただし、その選択によってジオメトリが無効になる場合は除きます)。
たとえば、複数線ストリングLRSジオメトリの場合に、最初のセグメントのメジャーが0から100で、2番目のセグメントのメジャーが100から150とします。SDO_LRS.LOCATE_PTファンクションを使用してメジャーが100の点を検出する場合、戻される点は最初のセグメントのメジャー100の点になります。SDO_LRS.CLIP_GEOM_SEGMENT、SDO_LRS.DYNAMIC_SEGMENTまたはSDO_LRS.OFFSET_GEOM_SEGMENTファンクションを使用してメジャー値が75から125のジオメトリ・オブジェクトを戻す場合は、2つのセグメントで構成される複数線ストリング・ジオメトリが戻されます。同じファンクションを使用してメジャー値が100から125のジオメトリ・オブジェクトを戻す場合は、最初のセグメントのメジャー値100の点は無視され、結果は、メジャー値が100から125の2番目のセグメントに沿った線ストリングになります。