4.2 SDO_TOPO_MAP.ADD_ISOLATED_NODE

構文

SDO_TOPO_MAP.ADD_ISOLATED_NODE(     
  topology IN VARCHAR2,      
  face_id  IN NUMBER,      
  point    IN SDO_GEOMETRY      
) RETURN NUMBER;

または

SDO_TOPO_MAP.ADD_ISOLATED_NODE(     
  topology IN VARCHAR2,      
  point    IN SDO_GEOMETRY      
) RETURN NUMBER;

または

SDO_TOPO_MAP.ADD_ISOLATED_NODE(     
topology IN VARCHAR2,      
face_id  IN NUMBER,      
x        IN NUMBER,      
y        IN NUMBER      
) RETURN NUMBER;

または

SDO_TOPO_MAP.ADD_ISOLATED_NODE(     
topology IN VARCHAR2,      
x        IN NUMBER,      
y        IN NUMBER      
) RETURN NUMBER;

説明

トポロジに孤立ノードを追加して、追加した孤立ノードのノードIDを戻します。

パラメータ

topology

孤立ノードを追加するトポロジの名前を指定するか、更新可能なTopoMapオブジェクトを使用している場合はNULLを指定します(「トポロジ・パラメータの編集方法の指定」を参照)。名前は20文字以下である必要があります。

face_id

孤立ノードを追加するフェイスのフェイスIDを指定します。(指定した点が指定したフェイス上に存在しない場合は、例外が発生します。)

point

追加する孤立ノードを表すSDO_GEOMETRYオブジェクト(点ジオメトリ)を指定します。

x

追加する孤立ノードを表す点のX軸値を指定します。

y

追加する孤立ノードを表す点のY軸値を指定します。

使用上のノート

Spatialは、追加されたノードに自動的にノードIDを割り当てます。topologyがNULLではない場合、適切なエントリが<topology-name>_NODE$表に挿入されます。また、追加された孤立ノードのエントリを含めるために<topology-name>_FACE$表が更新されます。(topologyがNULLの場合は、SDO_TOPO_MAP.UPDATE_TOPO_MAPプロシージャをコールして、いつでもこれらの表を更新できます。)

孤立ノードを追加するフェイスのIDがわかっている場合、face_idパラメータを指定できます。このパラメータを指定すると、次の2つのメリットがあります。

  • 検証: ファンクションは、指定されたフェイス上に指定された点が存在するかどうかを確認し、存在しない場合は例外が発生します。このパラメータを指定しない場合、ファンクションはトポロジ内のいずれかのフェイス上にその点が存在するかどうかを確認し、存在しない場合は例外が発生します。

  • パフォーマンス: ファンクションは、指定された点が存在するかどうかを、指定されたフェイス上のみで確認します。このパラメータを指定しない場合、ファンクションは、その点が存在するかどうかを、(場合によっては)トポロジ内のすべてのフェイス上で確認します。

連結ノードを追加するには、SDO_TOPO_MAP.ADD_NODEファンクションを使用します。

ノードとエッジを追加および削除する方法の詳細は、「トポロジの編集」を参照してください。

このファンクションの動作は、クライアント側のJava APIに含まれるTopoMapクラス(「トポロジ・データ・モデルのJavaインタフェース」を参照)のaddIsolatedNodeメソッドを使用する場合と同じです。

次の例では、フェイスF2上の孤立ノードN4の右に孤立ノードを追加して、追加したノードのノードIDを戻します。ここでは、現行の更新可能なTopoMapオブジェクトを使用します。(この例では、「トポロジ・データから作成したトポロジ」の定義およびデータを参照しています。)

DECLARE
  result_num NUMBER;
BEGIN
result_num := SDO_TOPO_MAP.ADD_ISOLATED_NODE(null, 2,
  SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(22,37,NULL), NULL, NULL));
DBMS_OUTPUT.PUT_LINE('Result = ' || result_num);
END;
/
Result = 24                                                                     
 
PL/SQL procedure successfully completed.