Нахождение ближайшей полилинии к заданной точке - PullRequest
1 голос
/ 04 мая 2020

Я работаю над приложением android, которое использует API Карт Google.

Я ищу алгоритм, который помог бы мне найти ближайшую полилинию к заданной точке. У меня есть карта с 100 полилиниями, и я хотел бы найти ближайшую полилинию к заданной точке.

Примером может быть следующий рисунок, где красная точка - это местоположение, а синие - некоторые полилиний. У меня есть доступ ко всем точкам на полилинии. Я думал как-нибудь использовать начальную и конечную точки, но я не уверен, как это сделать.

enter image description here

В данный момент я просто перебираю весь список полилиний, но он не очень эффективен, и я надеюсь улучшить производительность приложения. Пример кода:

        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
                }
            });
        }
...