Alteryxツールアイコン「距離ツール」(Distance Tool)をご紹介します
距離ツール (Distance Tool)
[空間]カテゴリの[距離]ツールについて紹介します。概要
このツールは、空間オブジェクトのポイントオブジェクトとポイント・ポリライン・ポリゴン間の距離を出力するツールです。入力が一つしかないため、各レコードごとにソースとターゲットとなるフィールドを持つ必要があります(フィールド付加ツールやジョインなどを利用しましょう)。
ソースはポイントのみ有効ですが、ポリゴンやポリラインを入れた際は、中心点を用いて計算されます(ポリゴンとして、ではなくポイントとして距離を計算します)。
本ツールは地球の曲率を考慮しています。
なお、フォーミュラツールでも距離の算出は可能です。
設定項目
設定項目 | 内容 | ||||
---|---|---|---|---|---|
ポイントまたは中心点ソース | 距離を計測するソースのポイントを含むフィールドを指定します。ポリゴンやポリラインは強制的に中心点をソースとして利用します。 | ||||
ポイント・線・ポリゴンの行き先 | 距離を計測するターゲットとなる空間オブジェクトを含むフィールドを指定します。 | ||||
距離を出力 | ソースとターゲット間の距離を出力します。フィールド名は、「単位」によって変化し、「Distance」の後に単位の名前が付加されます(例:単位にキロメートルを選択すると、「DistanceKilometers」となります)。 | ||||
ポリゴンの内部に近傍内点を作成 | ターゲット側のポリゴン内にソースから最も近い場所にポイントオブジェクトを作成します。フィールド名は「InteriorPt」となります。厳密には計算に用いられた場所にはできていないようです(目安??)。※後述 | ||||
ポイントがポリゴンの内側にある場合 | ソースのポイントがターゲットのポリゴン内にある場合、以下の2つから動作を選ぶことができます。
|
||||
行き先中心点への距離およびドライブタイムを出力 | 日本ではデータセットが提供されていないため利用できませんが、ターゲットとなる空間オブジェクトまでのドライブタイム・距離を出力するオプションです | ||||
基本方位を出力 | ソースからターゲットに対してのざっくりとした方位を出力します。「Direction」というフィールド名で出力しますが、結果はN(北)、S(南)、W(西)、E(東)とその組み合わせとなります(NWやNE等)。 | ||||
方位度数を出力 | ソースからターゲットに対しての方位を度単位で出力します。「DirectionDegrees」というフィールド名で出力されます。 | ||||
単位 | 距離を出力する際の単位を指定します。キロメートル、メートル、マイル、フィートから選択可能です。 |
サンプル
ソース:ポイント ターゲット:ポイント の場合
ソース、ターゲットともにポイントデータを指定しました。入力した物自身もどのように出力されるのか知りたかったので、ターゲットの方に入れ込んでいます。
ソース:ポイント ターゲット:ポリライン の場合
ソースはポイント、ターゲットはポリラインを指定しました。
それぞれ最も近い場所に近傍内点ができています。
ソース:ポイント ターゲット:ポリゴン の場合
ソースはポイント、ターゲットはポリゴンを指定しました。
入力となるポイントはPolygon2の内側に存在するため、オプション「ポイントがポリゴンの内側にある場合」の設定によって出力結果が変化します。「0距離を返す」の場合は、確かに距離が0となっていますし、「最も近い辺までの距離を返す」の場合は、マイナス値で距離が出力されています。なお、近傍内点は入力となるポイントと同じになります。
また、方向(Direction)は空白、度単位の方向(DirectionDegrees)は0が出力されるようになっているようです。
ちなみにPolygon3の近傍内点がなぜかポリゴンの境界付近にできていないのはよくわかりません・・・。
近傍内点について
近傍内点ですが、ラインの場合は距離の計算結果と一致しますが、ポリゴンの場合は一致しません。
ポイントとラインの場合
ポイントとラインで検証してみました。やり方としては、ポイントとラインで距離ツールで近傍内点を作成し、ポイントと近傍内点で距離ツールで距離を算出し、最初の距離ツールとの違いを比較します。
結果は以下の通り、ポイント⇔ラインの距離とポイントと近傍内点の距離は一致しました。つまり、近傍内点はライン上に存在するということになると思ってよさそうです。
ポイントとポリゴンの場合
ラインと同様のやり方でポリゴンについて検証してみます。
結果は以下の通り一致しませんでした。確かに絵で見ても少しポリゴンの内側にあります(内点なので、内側にあるのは当然といえば当然ですが・・・)。6のポイントはエッジが抽出されているようにも見えますが、厳密にはエッジではないようです。
近傍内点の結論
近傍内点は、ポイントの場合はポイントに一致し、ラインの場合はライン上にできますが、ポリゴンの場合は内側にできる、ということになります。
フォーミュラツールの同等機能について
フォーミュラツールでも距離を算出する関数があります。ただし、いくつかのオプションは省かれているのでご注意ください。
関数名 | ST_Distance |
---|---|
書式 | ST_Distance(object1,object2,"Km")
"Km":単位のオプション。Km(Kilometers)、meters、mi(miles)、feetが入力可能です |
その他 | ポイントがポリゴンの内部にある場合は0を返します |
Alteryx Designer Ver 2018.4.5.55178時点の情報です