Я работаю над приложением android, которое использует API Карт Google.
Я ищу алгоритм, который помог бы мне найти ближайшую полилинию к заданной точке. У меня есть карта с 100 полилиниями, и я хотел бы найти ближайшую полилинию к заданной точке.
Примером может быть следующий рисунок, где красная точка - это местоположение, а синие - некоторые полилиний. У меня есть доступ ко всем точкам на полилинии. Я думал как-нибудь использовать начальную и конечную точки, но я не уверен, как это сделать.
В данный момент я просто перебираю весь список полилиний, но он не очень эффективен, и я надеюсь улучшить производительность приложения. Пример кода:
for (Map.Entry<String, ArrayList<List<LatLng>>> entry : map.entrySet()) {
entry.getValue().stream().parallel().forEach(obj -> {
boolean isonPath = PolyUtil.isLocationOnPath(currentLocation, obj, true, 100);
if (isonPath) {
// do something if the point is on the path
}
});
}