空間検索の 3D リレーションシップ
2D/3D 結果の例
以下に、3D データに対して WITHIN_A_DISTANCE または WITHIN_A_DISTANCE_3D 空間リレーションシップを使用して得られるさまざまな結果について、例を挙げながら解説します。部屋(紫の立方体)を [入力フィーチャ レイヤ] とし、小さい黄色の円を [選択フィーチャ] とします。この操作は、「特定の X、Y、Z 位置(黄色のドット)から一定距離内にあるのはどの部屋か?」という質問に対する答えを試みたものです。使用する [リレーションシップ] に応じて、結果はかなり違ってきます。WITHIN_A_DISTANCE リレーションシップを使用した場合、一定距離内(X 座標および Y 座標に限定)のすべての部屋を選択すると、最下階から最上階までの部屋が選択されます。
ただし、WITHIN_A_DISTANCE_3D リレーションシップを使用している場合は、X、Y、Z 位置(黄色いドット)と個々の部屋との間の距離測定には 3D 測定値が使用されるため、選択されたポイントを基点とした厳密な 3D 距離内に 2 ~ 3 の部屋だけが生成されます。
有効な入力レイヤおよびレイヤの選択
次のいずれかの基準を満たすレイヤは、入力レイヤとして有効であり、またレイヤの選択にも有効です。
- ジオメトリ タイプがポイント、マルチポイント、ライン、マルチパッチ、ポリゴンのいずれかに該当する、フィーチャクラスからのレイヤ。
- 3D シンプル マーカー、3D 絵文字マーカー シンボル、3D ライン シンボルのいずれかのレンダラを使用する、ArcScene 内または ArcGlobe 内のレイヤ。このような場合は、ジオメトリ フィーチャのかわりに、レンダラのシンボルが使用されます。
- 基準高度や立ち上げを使用する、ArcScene 内または ArcGlobe 内のレイヤ。
- レイヤ ファイル(*.lyr)を参照するレイヤも、参照先のレイヤ ファイルが上記のいずれかの基準を満たしていれば有効です。この基準を実際に適用できるのは、(ArcScene および ArcGlobe 外部の)スクリプトで操作を実行しているときなどです。
最適な結果を得るには
3D レンダラを使用した場合に、リレーションシップを満たすかどうかの評価に使用されるのは、シンボルのサーフェスです。この理由は、3D マーカーは、3D ソリッドとしてではなく、サーフェスを表すマルチパッチとして実装されているためです。
非投影座標系に格納されているデータ(つまり、地理座標系に格納されているデータ)に対して WITHIN_A_DISTANCE_3D を使用したときに最適な結果が得られない場合、次の原因が考えられます。
- 度(10 進)から距離単位への変換において、大規模な地理範囲全体で一貫性が得られないこと。
- 地理座標系でサポートされているグローバル距離が、地表面の曲率を考慮したものではない(測定対象が常に平面である)こと。