Страница 1 из 1

Определение взаимной ориентации дорог

Добавлено: 29 мар 2017, 18:08
Kragval
Приветствую,

Возможно кто-то сможет помочь с интересной задачкой.
Есть группа линий разной длины, попарно идущих вдоль друг друга - то есть линии представляют собой две полосы движения на одной дороге (В одну сторону и обратную).
Никаких атрибутов нет, есть только координаты конечных точек линий.

Если принять во внимание что движение правостороннее и считать начальной точкой каждой линии к примеру самую южную конечную точку, есть ли способ задать атрибут направления движения для каждой линии?

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

Спасибо,

Re: Определение взаимной ориентации дорог

Добавлено: 30 мар 2017, 09:53
Александр Мурый
Я правильно понял, что нужно получить значения азумута для каждого из отрезков каждой из полилиний?

Re: Определение взаимной ориентации дорог

Добавлено: 30 мар 2017, 10:06
freeExec
Нет, ему нужно найти для линии её соседа и из них двоих определить, кто левый, а кто правый.

Re: Определение взаимной ориентации дорог

Добавлено: 30 мар 2017, 11:48
gamm
берете любой сегмент любой дороги, и строите луч от середины сегмента влево (глядя от начала сегмента в сторону конца), длиной более расстояния между дорогами. Если есть пересечение со второй линией, то вы едите по своей полосе. Если нет, то по встречке. Для надежности повторяете это 16 раз, и применяете мажоритарное правило.

Re: Определение взаимной ориентации дорог

Добавлено: 30 мар 2017, 12:14
freeExec
Это если гарантировано, что все сегменты развёрнуты по направлению движения.

Re: Определение взаимной ориентации дорог

Добавлено: 30 мар 2017, 13:47
gamm
freeExec писал(а):Это если гарантировано, что все сегменты развёрнуты по направлению движения.
это все равно, вы же просто определяете, едите вы по встречке или нет, двигаясь от начала сегмента к концу. Когда вы едите правильно, у вас вторая дорога слева. Когда неправильно - справа.