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

前
次

2.7.6 方向付きの点

方向付きの点は、点と仮想の終了点の位置を示す座標を含む特殊な点のジオメトリで、点でのシンボルの回転や点からのラベルの引き出しに使用する方向ベクトルを表すことができます。方向付きの点は、主に地図の視覚化と、シンボル(高速道路を表す盾状のシンボルなど)を含む表示アプリケーションで使用されます。

方向付きの点は、次のように指定します。

図2-8は、座標(12,14)に方向付きの点のジオメトリがあり、方向ベクトルは約34度(X軸から反時計回り)で、方向座標が0.3,0.2であることを示しています。(方位を特定の角度により正確に一致させるには、三角法のテキストにある表のコタンジェント値またはタンジェント値を参照してください。)この例の方向ベクトルは、(0,0)から(0.3,0.2)を経由しその先に延長されます。i=0.3、j=0.2とすると、角度(ラジアン)はarctan (j/i)で計算できます。この角度は、方向ベクトルに関連付けられた物理点に適用されます。

図2-8 方向付きの点のジオメトリ

図2-8の説明が続きます
図2-8「方向付きの点のジオメトリ」の説明

図2-8に示すジオメトリのSDO_GEOMETRY定義は、次のとおりです。

例2-12に、図2-8のジオメトリをデータベースに挿入するSQL文を示します。

例2-12 方向付きの点のジオメトリを挿入するSQL文

INSERT INTO cola_markets VALUES(
  91, 
  'oriented_point', 
  SDO_GEOMETRY(
    2001, 
    NULL, 
    NULL, 
    SDO_ELEM_INFO_ARRAY(1,1,1, 3,1,0), 
    SDO_ORDINATE_ARRAY(12,14, 0.3,0.2)));

方向付きの点を定義する際は、次のことに注意してください。

  • 方向ベクトルは、-1から1の数値で定義する必要があります。(例2-12では、この数値は0.3と0.2です。)

  • 方向付きの点は、複数点でも指定できますが(例2-13を参照)、方向付けをする点の後に方向情報を続ける必要があります。

方向付きの点の方向ベクトルの次元については、次のことに注意してください。

  • 2次元の点の方向ベクトルは2次元です。

  • LRSメジャーを持つ2次元の点(SDO_GTYPE=3301)の方向ベクトルは2次元です。

  • 3次元の点(SDO_GTYPE=3001)の方向ベクトルは3次元です。

  • LRSメジャーを持つ3次元の点(SDO_GTYPE=4401)の方向ベクトルは3次元です。

  • 4次元の点(SDO_GTYPE=4001)の方向ベクトルは3次元です。

例2-13 方向付きの複数点ジオメトリを挿入するSQL文

例2-13に、方向付きの複数点ジオメトリをデータベースに挿入するSQL文を示します。この複数点ジオメトリには、座標(12,14)および(12, 10)の位置に2つの点があり、それぞれが異なる方向ベクトルを保持しています。この文は例2-12の文と類似していますが、例2-13では、方向座標-1,-1を使用して、2つ目の点に左下向き45度(X軸から時計回りに135度)の方向ベクトルが割り当てられています。

-- Oriented multipoint: 2 points, different orientations
INSERT INTO cola_markets VALUES(
  92,
  'oriented_multipoint',
  SDO_GEOMETRY(
    2005, -- Multipoint
    NULL,
    NULL,
    SDO_ELEM_INFO_ARRAY(1,1,1, 3,1,0, 5,1,1, 7,1,0),
    SDO_ORDINATE_ARRAY(12,14, 0.3,0.2, 12,10, -1,-1)));