У меня есть база данных, которая содержит все путевые точки для каждой дороги в Великобритании.
Я пытаюсь создать навигационное приложение, учитывая широту и долготу пользователей, оно рассчитает ближайшую дорогу из базы данных и отобразит имя
Фрагмент JSON-представления базы данных
[ { "NAME": "Trinity Road", "coordinates": [ [ 1.7595267, 52.4778475 ], [ 1.7587864, 52.4774 ] ] }, { "NAME": "Wilde Street", "coordinates": [ [ 1.7593497, 52.4795499 ], [ 1.7594677, 52.4795041 ], [ 1.7598164, 52.4793277 ] ] } ]
Проблема, с которой я столкнулся, - правильно найти ближайшую дорогу. Я не могу найти подходящие алгоритмы, которые по заданной точке найдут ближайший путь/линию.
Он не может просто сравнить координаты, поскольку ближайшая дорога может находиться между двумя путевыми точками (исключает «проблему с ближайшей парой точек»).
Может кто подскажет подходящий алгоритм?
Лучшее возможное решение, которое я могу придумать, - это взвешенная сетка/матрица, в которой дороги имеют вес в зависимости от их близости к пользователю, а затем выбрать дорогу с наивысшей ценностью, непосредственно окружающую пользователя (но это может быть дорого).
Я хотел бы решить эту проблему без использования веб-API, такого как google-maps, или PostGIS (необходимо использовать sqlite - мобильное приложение)