QGISでポイントとポリゴン間の最小距離を計算していますか?


9

1つのポイントと1つのポリゴンの2つのベクターレイヤーがあり、ポリゴンからの各ポイントの最小距離(つまり、最も近いポリゴンの最も近いポイントからの距離)を計算します。

これを行うためのQGISの利用可能なプラグインはありますか?


1
あなたは多角形の頂点、重心などを意味しますか?
lynxlynxlynx 2012年

このタスクは、postgisでより適切に処理されます。
Pablo

ポリゴンの境界からの距離を意味します(実際には、計算したい海岸線から海で観察された海鳥の距離です)
シルビア

パブロ、残念ながらPostGISの使い方がわからず、コードを書くことができません...
Sylvia

回答:


9

最初にポリゴンをポイントに変換することは悪い考えです。ポリゴンまでの距離を計算するのではなく、(最も近いエッジではなく)ポリゴンの最も近いノードまでの距離を計算します。NNJoinプラグインを使用して、ポリゴンの正確な測定値を取得できます。分析を行う前に、レイヤーが同じ投影法であることを確認してください。


1
QGIS NNJoinプラグインは座標系の変換を処理します。ただし、結合データセットには投影座標系を使用する必要があります(座標系が異なる場合、入力データセットは結合データセットの座標系に変換されます)。
ハーバード・トバイト

6

QGISを使用する場合は、GRASSプラグインのGRASS v.distance関数で処理を行う必要があります。NNJoinのプラグインは、小さなデータセットのために働く、および使用にそれほど面倒である必要があります。

NNJoinのプラグインは、距離を計算する(GEOSdistanceを使用)QgsGeometry.distance()関数を使用します。


3

まず、ポリゴンをポイントに変換します。

ベクトル->ジオメトリツール->ノードの抽出

この新しいレイヤーを追加し、ポイントレイヤーと先ほど作成した新しいポリゴンポイントレイヤーの間の距離行列を計算します

ベクトル->分析ツール->距離行列

必ず「最も近い(k)ターゲットポイントのみを使用」を1として選択してください。


これは元の質問に対する良い答えですが、質問はコメントで修正されています。ノードを抽出すると、距離マトリックスが境界上の最も近い場所を見つけられない場合があります(最も近い場所は、境界ポリラインのポイントの間にある場合があります)。GRASS v.distanceまたはNNJoinプラグインを使用します。
ハーバード・トバイト

2

MMQGISプラグインでハブ距離を試してください。

http://michaelminn.com/linux/mmqgis/


参照:


2
ハブの距離でうまくいきましたが、記録のために、最初にポリゴンをポイントレイヤーに変換し、ポイント間の最小距離を計算しました。ポリゴンでは、重心または沿岸境界の中央からの最小距離を計算していました
シルビア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.