空間検索: 3D リレーションシップ

2D/3D 結果の例

以下に、3D データに対して [一定距離内にある](Python では WITHIN_A_DISTANCE) または [一定距離内にある (3D)](Python では WITHIN_A_DISTANCE_3D) 空間リレーションシップを使用して得られるさまざまな結果について、例を挙げながら解説します。部屋 (紫の立方体) を [入力フィーチャ レイヤー] とし、小さい黄色の円を [選択フィーチャ] とします。この操作は、「特定の X、Y、Z 位置 (黄色のドット) から一定距離内にあるのはどの部屋か?」という質問に対する答えを試みたものです。使用する [リレーションシップ] に応じて、結果はかなり違ってきます。[一定距離内にある](Python では WITHIN_A_DISTANCE) リレーションシップを使用した場合、一定距離内 (X 座標および Y 座標に限定) のすべての部屋を選択すると、最下階から最上階までの部屋が選択されます。

黄色いドットを基準とする一定距離内の部屋を選択した結果

ただし、[一定距離内にある (3D)] リレーションシップを使用している場合は、X、Y、Z 位置 (黄色いドット) と個々の部屋との間の距離測定は 3D で計算されるため、選択されたポイントを基点とした厳密な 3D 距離内の部屋だけが生成されます。

黄色いドットを基準とする一定距離内 (3D) の部屋を選択した結果

有効な入力レイヤーおよびレイヤーの選択

次のいずれかの基準を満たすレイヤーは、入力レイヤーとして有効であり、またレイヤーの選択にも有効です。

  • ジオメトリ タイプがポイント、マルチポイント、ライン、マルチパッチ、ポリゴンのいずれかに該当する、フィーチャクラスからのレイヤー。
  • 基準高度や立ち上げを使用するレイヤー。
  • レイヤー ファイル (*.lyrx) を参照するレイヤーも、参照先のレイヤー ファイルが上記のいずれかの基準を満たしていれば有効です。この基準を実際に適用できるのは、スタンドアロンの Python スクリプトで操作を実行しているときなどです。

最適な結果を得るには

マルチパッチを使用する場合、マルチパッチが閉じているかどうかに関係なく 3D リレーションシップが一致していることを評価するときは、ジオメトリのサーフェスが使用されます。たとえば、特定のポイント フィーチャから 4 面体のようなマルチパッチまでの 3D 距離を評価する場合、ポイントがその 4 面体の内部に含まれているかどうかに関係なく、距離はその 4 面体のサーフェスに対して計算されます。

非投影座標系に格納されているデータ (つまり、地理座標系に格納されているデータ) に対して [一定距離内にある (3D)] を使用したときに最適な結果が得られない場合、次の原因が考えられます。

  • 度 (10 進) から距離単位への変換において、大規模な地理範囲全体で一貫性が得られないこと。
  • 地理座標系でサポートされているグローバル距離が、地表面の曲率を考慮したものではない (測定対象が常に平面である) こと。
最適な結果を得るには、投影座標系で操作を実行してください。そうすることにより、データの距離歪みが最小限に抑えられます。