Я реализовал простой алгоритм Дейкстры для поиска кратчайшего пути на карте .osm с Java.
Поиск пути в графе, который создается из файла .osm, работает довольно хорошо. Но если текущее местоположение и / или пункт назначения пользователя не является узлом этого графа (просто необработанные координаты), как мы можем «связать» эти координаты с графом, чтобы заставить поиск пути работать?
Простое простое решение "найти ближайший к узлу текущего местоположения и нарисовать прямую линию" не представляется реалистичным. Что делать, если у нас есть ситуация, как на прилагаемой картинке? (UPD)
![enter image description here](https://i.stack.imgur.com/wG3NM.jpg)
Проблема здесь в том, что перед тем, как мы запустим любые «умные» алгоритмы поиска пути (например, Дейкстры), мы «связываем» текущую позицию с графом, но это просто тупая формула (гипотенуза из теоремы Пифагора) о нахождении ближайшего узла с точки зрения географических координат, и эта формула не является «путевой» - она не может принимать во внимание препятствия и типы узлов.
Перефразируя это - как нам найти кратчайший путь между A и B, если B является узлом в графе, а A не является узлом?
Вы слышали о каких-либо других решениях этой проблемы?