4.8 SDO_TOPO_MAP.CHANGE_EDGE_COORDS
構文
SDO_TOPO_MAP.CHANGE_EDGE_COORDS( topology IN VARCHAR2, edge_id IN NUMBER, geom IN SDO_GEOMETRY);
または
SDO_TOPO_MAP.CHANGE_EDGE_COORDS( topology IN VARCHAR2, edge_id IN NUMBER, geom IN SDO_GEOMETRY, moved_iso_nodes OUT SDO_NUMBER_ARRAY, moved_iso_edges OUT SDO_NUMBER_ARRAY, allow_iso_moves IN VARCHAR2);
説明
エッジの座標、およびその関連情報を変更します。
パラメータ
- topology
-
エッジが含まれるトポロジの名前を指定するか、更新可能なTopoMapオブジェクトを使用している場合はNULLを指定します(「トポロジ・パラメータの編集方法の指定」を参照)。名前は20文字以下である必要があります。
- edge_id
-
座標を変更するエッジのエッジIDを指定します。
- geom
-
変更されたエッジを表すSDO_GEOMETRYオブジェクト(線または連続線ストリング・ジオメトリ)を指定します。変更されたエッジの開始点および終了点は、元のエッジの開始点および終了点と同じである必要があります。
- moved_iso_nodes
-
allow_iso_moves
パラメータ値がTRUE
の場合、Spatialによって、このプロシージャの結果として別のフェイスに移動された孤立ノードのノードID値が格納される出力パラメータです。allow_iso_moves
パラメータ値がFALSE
の場合、Spatialによって、実際には移動されなかったが、allow_iso_moves
パラメータ値がTRUE
だった場合は別のフェイスに移動されていたはずの孤立ノードのノードID値が格納されます。 - moved_iso_edges
-
allow_iso_moves
パラメータ値がTRUE
の場合、Spatialによって、このプロシージャの結果として別のフェイスに移動された孤立エッジのエッジID値が格納される出力パラメータです。allow_iso_moves
パラメータ値がFALSE
の場合、Spatialによって、実際には移動されなかったが、allow_iso_moves
パラメータ値がTRUE
だった場合は別のフェイスに移動されていたはずの孤立エッジのエッジID値が格納されます。 - allow_iso_moves
-
TRUE
を指定すると、Spatialで、孤立ノードまたは孤立エッジを別のフェイスに移動するエッジ座標変更操作を実行することや、これらの孤立ノードおよび孤立エッジを含むフェイスの情報を調整することができるようになります。FALSE
を指定すると、Spatialで、孤立ノードまたは孤立エッジを別のフェイスに移動するエッジ座標変更操作は実行できなくなります。allow_iso_moves
パラメータを指定しない場合は、Spatialで、孤立ノードまたは孤立エッジを別のフェイスに移動するエッジの移動操作を実行できます。また、これらの孤立ノードおよび孤立エッジを含むフェイスの情報が調整されます。
使用上のノート
このプロシージャによってフェイス間の境界が変更される場合、Spatialは、自動的に、孤立ノードおよび孤立フェイスを再度割り当て、両側のフェイスのMBRを調整し、必要に応じてトポロジ・データ・モデル表を更新します。
topology
がNULLではない場合、このプロシージャは、<topology-name>_EDGE$表(「エッジ情報表」を参照)の指定されたエッジに関する情報を変更します。(topology
がNULLの場合は、SDO_TOPO_MAP.UPDATE_TOPO_MAPプロシージャをコールして、いつでもこの表を更新できます。)
このプロシージャを使用して、指定したエッジの開始点または終了点(あるいはその両方)を変更することはできません。これらの操作を実行するには、エッジを削除して、変更する開始点または終了点(あるいはその両方)のノードを削除してから、必要な新しいノードを追加し、エッジを追加する必要があります。
位相要素を編集する方法の詳細は、「トポロジの編集」を参照してください。
このプロシージャの動作は、クライアント側のJava APIに含まれるTopoMap
クラス(「トポロジ・データ・モデルのJavaインタフェース」を参照)のchangeEdgeCoords
メソッドを使用する場合と同じです。
例
次の例では、エッジE1の座標を変更します。(3つ目の点のみを、16,38から16,39に変更します。)ここでは、現行の更新可能なTopoMapオブジェクトを使用します。(この例では、「トポロジ・データから作成したトポロジ」の定義およびデータを参照しています。)
CALL SDO_TOPO_MAP.CHANGE_EDGE_COORDS(null, 1, SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(8,30, 16,30, 16,39, 3,38, 3,30, 8,30)));
親トピック: SDO_TOPO_MAPパッケージ・サブプログラム