7.16 SDO_NFE.GET_LL_CONN_INTERSECTIONS
構文
SDO_NFE.GET_LL_CONN_INTERSECTIONS( model_id IN SDO_NUMBER, ll_rule_id IN NUMBER, interaction_grp IN OUT SDO_INTERACTION, rule_lhs_lines_indexes IN DBMS_SQL.NUMBER_TABLE, rule_rhs_lines_indexes IN DBMS_SQL.NUMBER_TABLE, rule_points_indexes IN DBMS_SQL.NUMBER_TABLE, ) RETURN SDO_INTERACTION_ARRAY;
説明
相互作用フィーチャ(線または点)のグループが指定されると、このファンクションは、指定された線-線接続性ルールに応じて接続可能なフィーチャのサブグループを計算し、接続可能なフィーチャ・グループのセットを戻します。
パラメータ
- model_id
-
NFEモデルの識別子。
- ll_rule_id
- 線-線接続性ルールの識別子。LINE_LINE_RULE表に存在する必要があります。
- interaction_grp
- 相互作用フィーチャのグループ。(SDO_INTERACTION型の詳細は、「NFE接続性ルールに使用するデータ型」を参照してください。)
- rule_lhs_lines_indexes
- 相互作用グループ内の線フィーチャで、線-線ルールの左辺に合致する線の索引。
- rule_rhs_lines_indexes
- 相互作用グループ内の線フィーチャで、線-線ルールの右辺に合致する線の索引。
- rule_points_indexes
- 相互作用グループ内の点フィーチャで、線-線ルールでの点フィーチャの指定に合致する点の索引。このような点は、接続可能グールの構造に考慮される点です。
使用上のノート
このファンクションは、SDO_INTERACTION_ARRAYオブジェクトを戻します。(SDO_INTERACTION_ARRAY型の詳細は、「NFE接続性ルールに使用するデータ型」を参照してください。)
LHS線およびRHS線の索引は、SDO_NFE.CLASSIFY_LINES_BY_SIDEプロシージャを使用して取得できます。点の索引は、SDO_NFE.GET_POINTS_MATCH_LP_RULEファンクションを使用して取得できます。
このファンクションは、線-線ルールが(Java APIを使用して)モデルに作成されると、デフォルトでルール・デシジョン・ハンドラ表に登録されます。ただし、このファンクションは、接続可能なフィーチャのグループをカスタマイズされた方法で計算する他のユーザー・ファンクションで置き換えることができます。接続(ルール・デシジョン・ハンドラ)のカスタマイズの詳細は、「NFEルール」のルール・デシジョン・ハンドラの説明を参照してください。
例
次の例では、指定された線-線ルールに合致する相互作用グループごとに接続可能なフィーチャ・グループのセットを取得します。
DECLARE model_id NUMBER := 1; ll_rule_id NUMBER := 1; rule_lhs_lines_indexes dbms_sql.NUMBER_TABLE; rule_rhs_lines_indexes dbms_sql.NUMBER_TABLE; rule_points_indexes dbms_sql.NUMBER_TABLE; conn_interacs SDO_INTERACTION_ARRAY; inter_grps SDO_INTERACTION_ARRAY; BEGIN -- Get the groups of interacting features that meet the L-L Rule in the model inter_grps := sdo_nfe.get_interaction_groups( model_id, sdo_nfe.RULE_TYPE_LINE_LINE, ll_rule_id ); FOR i IN 1..inter_grps.count loop -- Classify the line features by side in the L-L rule (LHS, RHS). sdo_nfe.classify_lines_by_side( model_id, ll_rule_id, inter_grps(i).lines, rule_lhs_lines_indexes, rule_rhs_lines_indexes ); -- Get the specific point features that match the L-L rule. rule_points_indexes := sdo_nfe.get_points_match_lp_rule( model_id, 1, inter_grps(i).points ); -- Get the group of features that can be connected according the L-L rule. conn_interacs := sdo_nfe.get_ll_conn_intersections( model_id, ll_rule_id, inter_grps(i), rule_lhs_lines_indexes, rule_rhs_lines_indexes, rule_points_indexes); END loop; END; /
親トピック: SDO_NFEパッケージ・サブプログラム