HPC.ru lite - Все форумы
Форум: PocketGPS Pro и MacCentre PocketGPS
Тема: Вариант решения глюков с прокладкой и подсказками!
Страницы: 1 [2] 3
[Ответить]
Alligator. [05.09.2005 15:55] :
Logout писал(а):
Дальше алгоритм такой:
1) Определить точку входа на перекресток
2) определить точку выхода из перекрестка.
3) посчитать угол между ребром перед входом на перекресток и линией, соединяющей точку входа и выхода. По этому углу мы определим правый это поворот или левый.
4) Посмотреть другие точки выхода из перекрестка. Если существует более чем одна точка выхода в том же направлении, то вычислить порядковый номер нужного выхода (для того чтобы сказать "2-й направо" например)
По-моему алгоритм будет плохо обрабатывать проезд перекрестка типа "ступеньки", как в на картинке.
Если я правильно понял предложенный алгоритм, подсказка будет "второй поворот налево".
Имхо в данном случае не самая подходящая подсказка ... 
Нормальная подсказка будет если разбить на два и выдать связанную подсказку - "налево, потом направо".
Но встает вопрос в каких случаях разбивать, а в каких нет ... 
[К сообщению приложены файлы: A.jpg (92 кб)]
Чайни [05.09.2005 17:12] :
gren писал(а):
Предлагаю другой алгоритм: поторопить ТомТом скорее выйти в России
все наши обсуждения здесь бесполезны....
...и бесплатны 
Logout [05.09.2005 18:34] :
Alligator. писал(а):
[quote:ed83f5d1cb="Logout"]
Дальше алгоритм такой:
1) Определить точку входа на перекресток
2) определить точку выхода из перекрестка.
3) посчитать угол между ребром перед входом на перекресток и линией, соединяющей точку входа и выхода. По этому углу мы определим правый это поворот или левый.
4) Посмотреть другие точки выхода из перекрестка. Если существует более чем одна точка выхода в том же направлении, то вычислить порядковый номер нужного выхода (для того чтобы сказать "2-й направо" например)
По-моему алгоритм будет плохо обрабатывать проезд перекрестка типа "ступеньки", как в на картинке.
Если я правильно понял предложенный алгоритм, подсказка будет "второй поворот налево".
Имхо в данном случае не самая подходящая подсказка ... 
Нормальная подсказка будет если разбить на два и выдать связанную подсказку - "налево, потом направо".
Но встает вопрос в каких случаях разбивать, а в каких нет ... 
ну почему же. Правильно скажет: "поворот налево во второй заезд". После поворота скажет "поворот направо". Что тут не так? А про связку подсказок я уже говорил.
Правда, что-то я сомневаюсь в том, что это будет реализовано...

Logout [05.09.2005 18:37] :
BreQwaS писал(а):
roundabout - это отдельная ситуация (которую я временно вычеркнул из "алгоритма")
Боюсь "отдельных ситуаций" будет многовато - вспомните московские развязки.
Более "читерский" вариант - когда приближается хитрая рзвязка и программа не уверена, какие давать подказки, надо говорить что-то типа "впереди сложный перекрёсток" и показывать его на картинке крупным планом - мол, рули как хочешь 
"Развязка" кстати, это еще один вариант 
Вообще, мне на ум приходит всего четыре вида транспортных узлов:
1) перекресток
2) круговое движение
3) развязка (когда дороги пересекаются на разных уровнях)
4) сложный перекресток (Таганская пл. и т.п.). Это вручную надо разбивать на более простые перекрестки.
BreQwaS [05.09.2005 19:16] :
Это вручную надо разбивать на более простые перекрестки.
Что-то я сомневаюсь, что разбивка вручную - это хорошая идея 
Чайни [06.09.2005 06:52] :
Господа, ну о чём речь ? Правила проезда перекрёстков формализуются если и не элементарно, то не так уж и сложно
Зачем выдумывать то, чего в данной ситуации реализовано быть просто не может ? А если и может, то с неоправданными затратами...
BreQwaS [06.09.2005 11:10] :
Правила проезда перекрёстков формализуются если и не элементарно, то не так уж и сложно
Эээ... Ну так формализуйте 
Чайни [06.09.2005 14:22] :
BreQwaS писал(а):
Правила проезда перекрёстков формализуются если и не элементарно, то не так уж и сложно
Эээ... Ну так формализуйте 
Здесь ??? 
Я похож на идиота ?

Есть ещё одно маленькое "но" - это вообще имеет смысл делать для правильно сделанного алгоритма-основы. Ибо считаю, что основой для подсказок является способ прокладки маршрута. Сейчас он тоже реализован по одному из алгоритмов, имеющему право на жизнь, но как я уже говорил - далеко не лучший алгоритм с точки зрения последующих подсказок пользователю.
Alligator. [06.09.2005 17:42] :
Logout писал(а):
[quote:cf3f13b755="Alligator."]По-моему алгоритм будет плохо обрабатывать проезд перекрестка типа "ступеньки", как в на картинке.
ну почему же. Правильно скажет: "поворот налево во второй заезд".
когда ты въезжаешь на этот конкретный перекресток, есть поворот направо и чуть дальше поворот налево
что такое "второй поворот налево" в этот момент будет просто непонятно 
но важно знать, что поворачивая налево, надо оказаться в правом ряду, чтобы потом повернуть направо
т.е. это именно "связка"
ты писал про связки, но в твоем предложенном алгоритме остается неясным вопрос, как отличать "перекресток" от "связки перекрестков"
мне кажется, что это вопрос непростой, и алгоритм, который, конечно, можно придумать, не всегда будет решать эту задачу правильно 
PS ещё как один вариант, часто встречаются похожие "ступеньки", но совсем маленькие
в таком случае твой алгоритм также выдаст "второй поворот налево"
но реально на перекрестке это воспринимается как движение почти прямо, т.е. подсказка будет сбивать с толку и провоцировать всё-таки повернуть налево ...
мне кажется, что либо надо уметь как-то определять несколько "стандартных" траекторий, одна из которых "ступенька"
либо выдавать подсказку на каждую развилку, но группировать их в "связки"...
Alligator. [06.09.2005 17:51] :
Чайни писал(а):
Есть ещё одно маленькое "но" - это вообще имеет смысл делать для правильно сделанного алгоритма-основы. Ибо считаю, что основой для подсказок является способ прокладки маршрута. Сейчас он тоже реализован по одному из алгоритмов, имеющему право на жизнь, но как я уже говорил - далеко не лучший алгоритм с точки зрения последующих подсказок пользователю.
А можешь сформулировать, что ты называешь "алгоритмом прокладки маршрута" и почему ты считаешь, что он плох с точки зрения подсказок пользователю?
Просто у меня такое ощущение, что собственно прокладка маршрута (то, что как я понимаю, реализовано в ядре и сделано VctOs) работает вполне нормально, а проблемы в системе подсказок, которые уже генерятся не ядром, а тем, что сделано над ядром командой МакЦентра ...
Но в моем понимании, прокладка маршрута - это генерация последовательности ребер, соответствующей оптимальному пути из точки А в точку В...
А проблемы в том, как выбираются точки, в которых выдаются подсказки, и какие подсказки в этих точках выдаются ...
[Ответить]
[< Назад] [Вперед >]