3

海で2つの座標間の距離を計算するにはどうすればよいですか? また、2 つの座標間にルートを描画できるようにしたいと考えています。

これまでに見つけた唯一の解決策は、マップをピクセルに分割し、各ピクセルを LAND または SEA として識別し、A* アルゴリズムを使用してパスを見つけようとすることです。次に、ピクセルを相対座標に変換します。

購入できるソフトウェア パッケージがいくつかありますが、オンライン拡張機能を備えたものはありません。港間の距離を計算し、経路を地図上にプロットするサービスがsearates.com です。

4

3 に答える 3

2

地図は距離を歪める可能性があるという事実に注意してください。たとえば、メルカトル図法では、赤道から遠く離れたセグメントは、同じ長さの赤道近くのセグメントよりも実際の距離が短くなります。ピクセル/正方形などに均一なコストを割り当てるだけでは、最適でないルーティングと誤った距離計算が行われます。

マップにグリッドを投影し (ピクセルは、考えられる多くのグリッドのうちの 1 つの特定のグリッドにすぎません)、A* を使用して最適なパスを検索する場合、検索アルゴリズムを適切に動作させるために必要なことは、それに応じてエッジの重みを設定することだけです。地図上の距離ではなく、球体 (地球) の表面に沿った実際の距離です。

単に「海上か非海上か」と言うだけでは、航行可能性を判断するのに十分ではないことに注意してください。また、水深、交通ルート (イギリス海峡が車線に分割されていると考えられる船舶交通など)、および政治的考慮事項 (領海など) の問題もあります。また、小さすぎてマップに表示できないチャネル (パナマ、スエズ) のルートを手動で追加し、発生したオーバーヘッドをカバーするようにコストを調整したいと考えています。

于 2010-03-28T23:05:38.890 に答える
1

ほとんどの場合、海をピクセルに分割して、A*のようなことをする必要があります。隣接するピクセルをより大きな領域に結合することで少し最適化できますが、すべてを正方形に保つと、検索が簡単になる可能性があります。検索はマンハッタンスタイルではなくなりますが、十分な大きさの正方形があれば、追加の接続決定時間は埋め合わせ以上になります。

または、すべてのポートからポリゴンを繰り返し「成長」させて、凸多角形を構築することもできます(たとえば、ポリゴン内の任意のポイントが外に出ることなく他のポイントから到達できるように、PacManシェイプを避けたい場合)。これは、私が最初に述べた「正方形」アプローチの改良/複雑化/最適化です。重要なのは、そのエリアに入ると、そのエリアの他の場所に行くことができることを知っているということです。

申し訳ありませんが、これが役立つかどうかはわかりません。長い一日でした。でも頑張ってね。楽しい問題のようですね!

編集:言及するのを忘れて、あなたはまたあなたのエリアを四分木に前処理することができました。つまり、マップ全体を取得して、垂直方向と水平方向に半分に分割します(両方の分割を同時に行う必要はありません。時間をかけて「より良い」分割を行う場合は、後で行うことができます)。 、および各ノードが完全に陸または海になるまで再帰的に実行します。これにより、接続のネットワークを簡単に作成でき(隣接するリーフを接続するだけ)、A*はそこから実装するのに十分簡単なはずです。とにかく、これはおそらく私の最初の提案を実装する最も簡単な方法でしょう。:)

于 2010-03-25T03:31:25.460 に答える
1

私は満足のいく解決策に達しました。それはあなたが提案したことと私が最初に念頭に置いていたことの線に沿っていますが、ソフトウェアとGISの概念を理解するのにしばらく時間がかかりました.私はGISの初心者です. 誰かが再び似たようなことに出くわした場合、これが私のセットアップです: PostGIS for PostgreSQL、Natural Earthのマップ、GIS 編集ソフトウェアqGisおよびOpenJUmp、ルーティング アルゴリズムpgRouting

ナチュラル アース マップを有効にするには、ある程度の処理が必要でした。海洋ポリゴンと河川を結合して、最も内陸のポイントへの正確な経路を取得できるようにしました。次に、1 度の経緯線を使用して、ある大陸から別の大陸へのパスを取得しました (一部のパスはチェス キューブのように見えるため、これよりも洗練されたソリューションを見つける必要があります)。これらの操作はすべて PostGIS を使用してコマンド ラインから実行できます。Natural Earth マップの代わりに OpenStreetMap を使用することもできますが、planet.osm のダンプは約 200Gb あり、私は落胆しました。

このセットアップは距離の精度の問題も解決すると思います.PostGISは地球の実際の形状を考慮に入れ、距離はかなり正確になるはずです.

まだいくつかのテストと微調整を行う必要がありますが、世界の海岸線 (小さな離島はまだありません) の任意の 2 点からルートを計算して描画し、ルート ポイント名 (水路、海、川、海) を表示できると言えます。 )。

于 2010-03-31T22:13:13.343 に答える