Javaを使用して.osmマップ上の最短パスを見つけるための単純なダイクストラのアルゴリズムを実装しました。
.osmファイルから作成されたグラフのパスファインディングは非常にうまく機能します。しかし、ユーザーの現在の場所や目的地がこのグラフのノードではない場合(生の座標のみ)、パスファインディングを機能させるために、これらの座標をグラフに「リンク」するにはどうすればよいですか?
「現在のロケーションノードに最も近いものを見つけて直線を描く」という単純で単純な解決策は、現実的ではないようです。添付の写真のような状況になった場合はどうなりますか?(UPD)
ここでの問題は、「スマートな」パスファインディングアルゴリズム(ダイクストラのような)を開始する前に、現在の位置をグラフに「リンク」することですが、これは、地理的座標とこの式は「パスファインディング」ではありません-障害物やノードのタイプを考慮に入れることはできません。
言い換えると、Bがグラフのノードであり、Aがノードではない場合、AとBの間の最短経路をどのように見つけるのでしょうか。
この問題に対する他の解決策について聞いたことがありますか?