経路探索アルゴリズムは経路に依存し、ポイントは無意味です。あなたが今持っているのは「ウェイポイント」のリストです。ただし、それらのポイントがどのように接続されるかについては説明していません。たとえば、すべての点が他の点に接続されている場合、最短距離は単純に A と B の間のピタゴラス距離になります。開始位置と終了位置はありますか?
したがって、最初のステップは、x、y 座標だけでなく、接続可能なポイントのリストも各ポイントに追加することです。
これを行ったら、経路探索アルゴリズムの使用を開始できます (この場合、A* は Dijkstra のものよりも優れているように見えます)。それは単に、ポイント間の実際の距離を「コスト」する標準的な実装です。(そして A* の場合、ヒューリスティックは終点までのピタゴラス距離になります)。
A* (およびその他のアルゴリズム) に関する優れたチュートリアルについては、Amit のページを確認してください。
編集、コメントへの返信。
最初のステップは、一連の線分を「点」に変換することです。私がこれを通過する方法は次のとおりです。
collection AllPoints {containing Location & LinksToOtherPoints}
for each Segment
get start/end Point of Segment
if Point.Location is not in allPoints
add Point to AllPoints
add the other Point of Segment to LinksToOtherPoints
次に、すべてのポイントとそれらの間の接続を含むリストを作成します。allPoints コレクションを常に検索する必要があるため、バイナリ ツリー構造 (セット?) に格納することをお勧めします。