3D ラインをマルチパッチでインターセクト(Intersect 3D Line with Multipatch)(3D Analyst)の仕組み

[3D ラインをマルチパッチでインターセクト(Intersect 3D Line with Multipatch)] は、ラインとマルチパッチが交差するポイントを検出し、それらのポイント、交差箇所で分割されたライン、またはこれら両方を出力フィーチャクラスに書き込みます。3D ユークリッド空間の 3D フィーチャに対して計算が実行されます。このツールは、検出された交点の数を表す整数を返します。

[出力ポイント フィーチャクラス] を指定した場合、ラインとマルチパッチ両方の OID が各ポイントの属性として書き込まれます。これは、ポイントの作成で使用した 2 つのフィーチャを識別します。ライン上の 3D 距離(ラインの開始点から交点まで)が含まれます。

[出力ライン フィーチャクラス] を指定した場合、マルチパッチとの交点で入力ラインが分割され、その後で書き出されます。最初の分割ポイントと最後の分割ポイントを形成しているマルチマッチの OID、およびソース ライン OID が含まれます。ラインの開始点または終点が交点(分割位置)ではなく、元の入力ラインの始点または終点である場合は、コード値として -1 が使用されます。元の入力ラインの始点を基準とする、出力ラインの開始点の 3D 距離が含まれます。ラインがマルチパッチとまったく交差しない場合、変更されずにそのまま出力にコピーされます。

マルチパッチと元のラインが交差する場合、元のライン全体が 1 つ以上の新しいラインによって表されます。この新しいラインは、元のラインと幾何学的に同等です。元のラインから取得した新しい各ラインの LENGTH_3D を合計した値は、元のラインの 3D 長さに等しくなります。

新しい各ラインについて、DIST_3D と LENGTH_3D の合計は、元のライン上で、新しいラインの終点となる位置の 3D 距離に等しくなります。

生成される新しいラインごとに、マルチパッチ ID のペアが存在します。新しいラインを元のラインの始点から取得し、マルチパッチが元のラインの始点で交差しなかった場合、新しいラインの始点にあるマルチパッチの ID として -1 が割り当てられます。同様に、新しいラインを元のラインの終点から取得し、マルチパッチが元のラインの終点で交差しなかった場合、新しいラインの終点にあるマルチパッチの ID として -1 が割り当てられます。

元のラインの内部から生成された(つまり、共通の端点がない)各ラインについて、一致するペアが見つかった場合は、それぞれの端点に同じマルチパッチ ID が割り当てられます。それ以外の場合は、各端点で最初に検出されたマルチパッチ ID が割り当てられます。たとえば、隣接する 2 つの立方体(マルチパッチ 1 とマルチパッチ 2)のみをラインが通過しており、元のラインの両方の端点がこれらのマルチパッチの外側にある場合、新しい 4 本のラインが作成されます。新しい各ラインのマルチパッチ ID ペア(始点と終点)は、(-1, 1)、(1, 1)、(2, 2)、(2, -1)となります。


7/10/2012