4

2 つのポリゴン間のユークリッド距離ではなく、位相距離を計算したいと思います。隣接する 2 つのポリゴン間の距離は 1、共通の隣接物を介して接続する 2 つのポリゴン間の距離は 2 などです。

位相距離を計算する簡単な方法はありますか? この質問を検索しましたが、解決策が見つかりませんでした。

ありがとうございました。

4

2 に答える 2

0

基本的にはPolygon AとBの間の距離を検索したい

ここに私がとるステップがあります:

距離 = 1;

  1. ポリゴン B がポリゴン A の隣であるかどうかを確認します. そうである場合は終了です. そうでない場合はポイント 2 に進みます.
  2. 隣接するすべてのポリゴンの座標重心 (中点) とポリゴン B を計算します。
  3. 隣接する重心からポリゴン B の重心までの距離を数え、距離が最も近いポリゴン (ポリゴン C) を選択します。
  4. 距離 = 距離 + 1, ポリゴン B がポリゴン C の隣にあるかどうかを確認します. そうであれば = 完了, そうでない場合, ポリゴン A = ポリゴン C, ポイント 2 へ

最後に距離をとります。

于 2013-05-22T05:11:09.153 に答える
0

既存のソフトウェアを使用してこの計算を実装する方法を見つけました。

まず、PostGIS プラグインを使用して shp ファイルを PostgreSQL にインポートします。

次に、ST_Touches 関数を使用して、各ポリゴンの隣接するポリゴンを計算します。

第三に、各ポリゴンを点として、新しいネットワークを構築します。

最後に、ダイクストラ アルゴリズムを使用して、各 2 点間の最短経路を計算します。

于 2013-05-24T08:43:51.003 に答える