我已经实现了一个简单的 Dijkstra 算法,用于使用 Java 在 .osm 地图上查找最短路径。
从 .osm 文件创建的图中的路径查找工作得很好。但是如果用户的当前位置和/或目的地不是该图的节点(只是原始坐标),我们如何将这些坐标“链接”到图以进行寻路工作?
简单直接的解决方案“找到离当前位置节点最近的并画一条直线”似乎并不现实。如果我们遇到附图中的情况怎么办?(UPD)
这里的问题是,在我们开始任何“智能”寻路算法(如 Dijkstra 的)之前,我们将当前位置“链接”到图形,但这只是根据以下公式找到最近节点的愚蠢公式(勾股定理的斜边)地理坐标,这个公式不是“寻路”——它不能考虑障碍物和节点类型。
套用它 - 如果 B 是图中的节点,而 A 不是节点,我们如何找到 A 和 B 之间的最短路径?
你听说过这个问题的任何其他解决方案吗?