QGIS ver3.4にて要素同士の最短距離を測定したい

1,917 views
Skip to first unread message

Yusuke

unread,
Mar 11, 2019, 2:02:01 AM3/11/19
to QGIS初心者質問グループ
お世話になっております。
表題の件、測定方法がないか調査しています。
なにか良い方法をご存知の方いらっしゃいましたら、是非ご教授のほど、よろしくお願いいたします。

adachi

unread,
Mar 11, 2019, 2:17:14 AM3/11/19
to QGIS初心者質問グループ
Yusukeさま

恐縮ですが、的確な回答を得るにはやや情報が不足している気がします。

・ラスタということは無いかと思いますが、どんな形式でしょう(ポイント?ライン?ポリゴン?)
・要素というのは同一レイヤ内の話でしょうか、それとも異なるレイヤ間の話でしょうか


その上で、ご質問の語感のみから判断すると

1. ベクタ → 解析ツール → 距離マトリクス で要素間の距離は得られます(ポイントデータ対象)
2. あるいは、ラインも引きたければ以下が参考になるかと

(参考)
同一レイヤ内のポイントを鎖のようにつなげたい、であればBeelineプラグインでできるかと思います

adachi

unread,
Mar 11, 2019, 3:50:56 AM3/11/19
to QGIS初心者質問グループ
先ほどの回答で、Beelineプラグインについて誤った情報を書いてしまいました。

一筆書きで順番につなげるのはプロセッシングツールの「ポイントをパスに」でした…
Beelineプラグインはそれこそ同一レイヤ内のすべてのポイントをつなぐすべての組合せのラインを生成するものでした。

大変失礼しました。

Yusuke

unread,
Mar 11, 2019, 3:58:42 AM3/11/19
to QGIS初心者質問グループ
adachi様
ご回答誠にありがとうございます。

・ラスタということは無いかと思いますが、どんな形式でしょう(ポイント?ライン?ポリゴン?)
・要素というのは同一レイヤ内の話でしょうか、それとも異なるレイヤ間の話でしょうか

→ポイント、ライン、ポリゴン、全ての要素を想定しております。
例えば、ラインとラインの最短距離、ポリゴンとラインの最短距離、なとです。
よって異なるレイヤ間を対象に測定できれば、とても有り難いです。
これが実現可能な方法はございますでしょうか?
また、同一レイヤ間であれば測定可能な方法などございましたら、同じくご教授頂けますと幸いです。

よろしくお願いいたします。

adachi

unread,
Mar 11, 2019, 4:41:45 AM3/11/19
to QGIS初心者質問グループ
Yusuke様

異なる形式間の距離ということで、そうなると「何を以て"最短距離"とするか?」という新しい疑問が出てきます。

例えばポリゴン間でいうと、ポリゴンの重心間の最短距離が知りたい、ということになるのでしょうか。
あるいは、あるところで辺が接していれば「距離ゼロ」でもよいのか?その場合は一部でも重なっていると距離がマイナスになってしまうかと思いますが。
同じように、ラインとポリゴンの場合はどの部分を最短距離と考えるのか?ラインとラインの場合は?

などなど、単に「最短距離」というだけでも幾通りも考えられるので、まずはそのあたりの考え方、アルゴリズムを整理してみてはいかがでしょうか。

ポイントとポイントは前述の通りのやり方、ラインとポイントまではNNJoinなどのプラグインでできますが
それ以上になると、条件を自動で考慮してくれる万能ツールはなさそうなので「まずはすべてポイントに変換して考える」ということが必要になるかと思います。

ありた

unread,
Mar 11, 2019, 10:56:52 AM3/11/19
to QGIS初心者質問グループ
こんにちは


たとえば10個の地物があったとき、他の9個との距離を知りたいのでしょうか。
あるいは、基準となる地物があって、各地物がそれぞれ基準地物との距離を得たいのでしょうか。


後者が目的なら、フィールド演算機で distance あるいは shortest_linelength の合わせ技などで
取得することは一応可能です。

以下のトピックも参考にしてみてください。
(なぜか、このとき closest_pointmake_line 使って更にひと手間かけてる……)

Reply all
Reply to author
Forward
0 new messages