Сортировка линейного сегмента для маршрутов - PullRequest
0 голосов
/ 17 октября 2018

enter image description here

уведомление : красная линия перекрывается с синей линией (это прямая линия в противоположном направлении), показанной в виде кривой для иллюстрации

x1, y1 и т. Д. Являются парами (начало, конец) широты и долготы.

light blue segment(x1, y1 -> x2,y1)

dark  blue segment(x2, y1 -> x3, y3)

red        segment (x3, y3 -> x2, y4)

рассмотрим массив ниже, который находится в случайном порядке, из которого взят вышеупомянутый сегмент карты.

var arr = [

(x3, y3 -> x2, y4),
(x1, y1 -> x2,y1),
(x2, y1 -> x3, y3)

];

При построении массива его построение выполняется в правильном порядке.

Я хочу отсортировать массив в правильном порядке от начала до конца по маркерам маршрута.

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

Какой самый эффективный способ сортировки массива, учитывая, что некоторые сегменты могут идти в противоположном направлении.

...