У меня уже был список координат точек, полученных от многих машин на улицах в определенной области. Есть ли какой-нибудь алгоритм для составления списка подходящих полилиний, представляющих улицы, по которым автомобили прошли из этого списка точек?
[РЕДАКТИРОВАТЬ]
Например, изображение ниже представляет собой набор координат точек, полученных от автомобилей на улицах. Список точек
Ожидаемый результат, который я хочу получить, это список полилиний (список упорядоченных точек), подобных этому (6 полилиний в этом примере). Ожидаемый результат .
Пример данных результата: [line1: [(lat1, ln1), (lat2, ln2), (lat3, ln3), ...], line2: [(lat1, ln1), (lat2, ln2), (lat3, ln3), ...]]
Это означает, что каким-то образом я должен соединить все неупорядоченные точки, чтобы создать полилинии или нарисовать полилинии, которые представляютдля (почти) точек, которые они пересекают.
Я попробовал алгоритм k-средних, чтобы сгруппировать точки, а затем соединил точки в каждой из них. Я думаю, что все точки в кластере принадлежат 1 полилинии. Но проблема в том, что я не знаю, сколько должно быть «k» кластеров и как выбрать наиболее потенциальные центроиды, чтобы получить точный результат. Поэтому я попытался создать довольно большое количество (например, 300) случайных центроидов. В конце концов, есть много кластеров, которые имели только 1 очко (центроид и членская точка идентичны). С другой стороны, когда число центроидов меньше, кластеры не такие точные, как я ожидал (точки в одном кластере принадлежат многим полилиниям).
В некоторых исследованных мной статьях есть некоторые разговорыо функции "Points To Line" в "arcGIS" (http://resources.arcgis.com/en/help/main/10.1/index.html#/Points_To_Line/00170000003s000000/). Я никогда не слышал об этом раньше, поэтому я действительно не знаю, можно ли ее использовать с Java