我已经实现了一个简单的Dijkstra算法,用于在Java上查找.osm地图上的最短路径.
从.osm文件创建的图形中的路径查找效果非常好.但是,如果用户的当前位置和/或目标不是此图的节点(只是原始坐标),我们如何将这些坐标"链接"到图形以使路径查找工作?
简单直接的解决方案"找到最接近当前位置节点并绘制直线"似乎并不现实.如果我们遇到附图所示的情况怎么办?(UPD)

这里的问题是,在我们开始任何"智能"寻路算法(如Dijkstra's)之前,我们将当前位置与图形"链接",但它只是根据毕达哥拉斯定理的一个愚蠢的公式(斜边是一个斜边)来找到最近的节点.地理坐标和这个公式不是"寻路" - 它不能考虑障碍和节点类型.
换句话说 - 如果B是图中的节点,我们如何找到A和B之间的最短路径,而A不是节点?
您是否听说过此问题的其他解决方案?