Первые впечатления

Обсуждаем все вопросы по PocketGPS Pro и MacCentre PocketGPS, а также PocketNavigator.
NikolaRC
Студент (1 lvl)
Сообщения: 38
Зарегистрирован: Чт июл 17, 2003 06:48

Сообщение NikolaRC » Чт май 06, 2004 10:57

Спасибо за как всегда оперативный ответ. С картинкой возиться некогда. Поэтому описываю по шагам.
1. В адресном поиске находим "Березовая аллея"(БА) Зеленоградского АО.
2. Переходим к карте и вводим запрет на проезд по БА.
3. Прокладываем маршрут от любого корпуса справа от БА до любой точки в Москве (я прокладывал от кор. 412 до района м.Войковская).
4. Имеем маршрут, проходящий через БА

NikolaRC
Студент (1 lvl)
Сообщения: 38
Зарегистрирован: Чт июл 17, 2003 06:48

2VctOs

Сообщение NikolaRC » Чт май 06, 2004 11:08

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

VctOs
Профессор (5 lvl)
Сообщения: 661
Зарегистрирован: Чт июн 19, 2003 20:36

Сообщение VctOs » Чт май 06, 2004 11:34

NikolaRC писал(а):Спасибо за как всегда оперативный ответ. С картинкой возиться некогда. Поэтому описываю по шагам.
1. В адресном поиске находим "Березовая аллея"(БА) Зеленоградского АО.
2. Переходим к карте и вводим запрет на проезд по БА.
3. Прокладываем маршрут от любого корпуса справа от БА до любой точки в Москве (я прокладывал от кор. 412 до района м.Войковская).
4. Имеем маршрут, проходящий через БА
Вижу.
В данном случае Березовая аллея является стартовой дугой. Запретить прокладывать маршрут по стартовой или финишной дуге все равно что срубить сук на котором сидишь. В такой ситуации алгоритм должен или вернуть код ошибки или проложить маршрут через часть запрещенной дуги в надежде на то, что причина ее перекрытия осталась в той части дуги, через которую маршрут не пройдет.

Аватара пользователя
PanD@
Доктор (4 lvl)
Сообщения: 232
Зарегистрирован: Вт окт 28, 2003 16:20

Сообщение PanD@ » Чт май 06, 2004 11:46

2 VctOs

А чем может быть вызвано появление на карте областей, в которые невозможно проложить маршрут. Я про это уже писал здесь
http://www.pocketgps.ru/board/viewtopic.php?t=23640 (в самом конце темы)?
Такие области (по крайне мере в описываемом месте) появились в версии 2.0 (с новой версией карты).

VctOs
Профессор (5 lvl)
Сообщения: 661
Зарегистрирован: Чт июн 19, 2003 20:36

Сообщение VctOs » Чт май 06, 2004 13:00

PanD@ писал(а):А чем может быть вызвано появление на карте областей, в которые невозможно проложить маршрут.
В данном случае - тем что стартовая или финишная дуга оторвана от дорожной сети.

NikolaRC
Студент (1 lvl)
Сообщения: 38
Зарегистрирован: Чт июл 17, 2003 06:48

Сообщение NikolaRC » Пт май 07, 2004 08:00

На короткое время добрался до интернета и смог прочитать ответ VctOs (надо полагать, Виктора Осипкова, автора картографической системы LaserMap, тех.координатора проектов 77.ru и 78.ru и просто человека весьма известного и уважаемого в геоинформационном сообществе). В том, что касается карты Подмосковья, мы все-таки говорим о несколько разных вещах. Я представляю, с какими трудностями связана привязка областной карты к местности и какие огромные ресурсы надо привлечь для проведения полевых работ, поэтому точность областной карты я как-бы и не обсуждал. Речь шла о явной ошибке, связанной, как это теперь выяснилось, просто с неправильным переносом данных из предыдущей версии карты. Собственно, этот факт и вызывает беспокойство в настоящий момент. Досадная ли это случайность или нечто достаточно систематическое? Ну, а в отношении стартовых и финишных дуг... Интуитивно догадываюсь, что это такое, но для конкретного обсуждения этой ситуации мне надо все-таки знать четкое определение этих понятий. Поэтому могу только сказать, что я сразу предположил, что программа просто не может начать движение, не проложив маршрут по закрытой для проезда БА. Но это очень плохой стиль программирования. Здесь мы сразу переходим в очень неопределенную область эстетических предпочтений, поскольку никаких стандартов , насколько мне известно, здесь пока нет. Но все равно, есть многочисленные рекомендации и сложившаяся практика обработки подобных ситуаций.
Пользователь должен быть информирован о сложившейся ситуации и ему должно быть предоставлено право выбора. Ну, и последнее. Я никогда не использую БА для выезда из этой внутриквартальной территории. Для этого там есть некий "проектируемый проезд №...", но программа упорно не признает его в качестве стартовой дуги (если я правильно понимаю, что это такое).

VctOs
Профессор (5 lvl)
Сообщения: 661
Зарегистрирован: Чт июн 19, 2003 20:36

Сообщение VctOs » Пт май 07, 2004 12:44

NikolaRC писал(а):Речь шла о явной ошибке, связанной, как это теперь выяснилось, просто с неправильным переносом данных из предыдущей версии карты.
Не верю в то, что такая малая часть данных могла быть перенесена с ошибкой, в то время как основная часть без ошибок. Наверняка ошибка вызвана чем-то иным. Скорее всего она возникла при внесении исправлений.
NikolaRC писал(а): Собственно, этот факт и вызывает беспокойство в настоящий момент. Досадная ли это случайность или нечто достаточно систематическое?
Систематическая. Не ошибается только тот, кто ничего не делает.
Карта будет систематически поправляться и в процессе исправления будут возникать ошибки. В т.ч. технические. И выходной контроль некоторую их часть (доли процента) не сможет выявлять.
Подходит сын к программисту и спрашивает:
- Па, а почему утром солнце встает?
- Па, ну почему утром солнце встает, а вечером заходит?
- Сынок, Ты уверен что цикл стабильный?
- Проверял!
- Утром точно втает?
- Точно!
- А вечером заходит?
- Заходит!
- Сынок, главное - ты только ничего не трогай!


По результатам опытной эксплуатации исправленных в декабрьской версии Дмитровского и Ленинградского шоссе отловлено и исправлено в мартовской версии около 10 технических ошибок, внесенных в процессе исправления.
В мартовской версии уже найден дефект удаления движения по Виндавской улице.
NikolaRC писал(а): Ну, а в отношении стартовых и финишных дуг... Интуитивно догадываюсь, что это такое, но для конкретного обсуждения этой ситуации мне надо все-таки знать четкое определение этих понятий.
Маршрут прокладывается по графу дорожной сети при помощи гарантирующего оптимальность результата алгоритма Дейкстры на основании пошлин, указанных картографами как оценка времени, требуемого на проезд по дуге. Затраты времени на маневры учитываются только в тех местах, где на карте явно изображены дуги маневров (территория Москвы и Зеленограда). Критерием оптимальности маршрута является минимизация суммы пошлин дуг. "Въезд" и "выезд" из точек старта и финиша, расположенных вне дуги графа на геометрически ближайшую дугу (соответственно стартовую и финишную) осуществляется по воздушной прямой без учета существующих на местности и изображенных на карте препятствий (бордюрный камень, здания, водоемы, железные дороги, кустарник, газоны и т.д.).
NikolaRC писал(а): Поэтому могу только сказать, что я сразу предположил, что программа просто не может начать движение, не проложив маршрут по закрытой для проезда БА. Но это очень плохой стиль программирования.
Не стреляйте в пианиста, он играет как умеет.
Ядро не вступает в переговоры с пользователем. Иногда оно возвращает оболочке код ошибки. Кода ошибки "движение по стартовой дуге перекрыто" пока не предусмотрено, думаю, добавить его не очень трудно, но пока не вижу особого практического смысла.
NikolaRC писал(а):Здесь мы сразу переходим в очень неопределенную область эстетических предпочтений, поскольку никаких стандартов , насколько мне известно, здесь пока нет. Но все равно, есть многочисленные рекомендации и сложившаяся практика обработки подобных ситуаций.
Я не могу похвастаться знанием тонкостей реализации этой ситуации в других программах. Согласен с тем, что алгоритм поиска стартовой и финишной дуг реализован со значительными допущениями (есть, например, т.н. "проблема Pand@" - неучет препятствий при поиске ближайшей дуги). По мере возможности я знакомлюсь с другими программами на предмет наличия намека на решение "проблемы Pand@", но пока ничего полезного найти не смог. Разве что кроме старого доброго ЛазерМапа, в котором "проблемы Pand@" автоматически решалась "нулевым вариантом" - маршруты можно было прокладывать только между точками, расположенными на дугах графа.

Разумется, я буду благодарен, если Вы предоставите мне возможность ознакомиться с многочисленными рекомендациями и сложившейся практикой обработки проблемы выезда на дугу с запрещенным движением.
NikolaRC писал(а): Пользователь должен быть информирован о сложившейся ситуации и ему должно быть предоставлено право выбора.
Возможно оправдано вынести реализацию этого права в настраиваемые опции.
NikolaRC писал(а):Ну, и последнее. Я никогда не использую БА для выезда из этой внутриквартальной территории. Для этого там есть некий "проектируемый проезд №...", но программа упорно не признает его в качестве стартовой дуги (если я правильно понимаю, что это такое).
Действительно, ядро находит ближайшую по воздушной прямой дугу и принимает ее за стартовую. Даже если запретить захват БА и велеть искать среди всех дуг, кроме БА, велик риск, что вместо нужного Вам пр. пр-да №4912, для южный точек будет захватываться Панфиловский пр-т (по прямой через лес) или Центральный пр-т (по воздушной прямой, пересекающей, через два квартала, три стадиона, десяток зданий и неопределенное количество заборов).
Поэтому можно говорить о том, что решение этой проблемы сводится к полному решению "проблемы Pand@" - поиску непрямого выезда на дорогу из заданной точки с учетом изображенных на карте препятствий и ограничений. Но к сожалению, пока нет никаких практически приемлемых идей как реализовать оптимальную трассировку в многосвязанном свободном пространстве силами карманного компьютера.[/quote]

Ромик
Кандидат (3 lvl)
Сообщения: 129
Зарегистрирован: Вс янв 04, 2004 19:10

Сообщение Ромик » Пт май 07, 2004 19:43

VctOs писал(а):
NikolaRC писал(а):Спасибо за как всегда оперативный ответ. С картинкой возиться некогда. Поэтому описываю по шагам.
1. В адресном поиске находим "Березовая аллея"(БА) Зеленоградского АО.
2. Переходим к карте и вводим запрет на проезд по БА.
3. Прокладываем маршрут от любого корпуса справа от БА до любой точки в Москве (я прокладывал от кор. 412 до района м.Войковская).
4. Имеем маршрут, проходящий через БА
Вижу.
В данном случае Березовая аллея является стартовой дугой. Запретить прокладывать маршрут по стартовой или финишной дуге все равно что срубить сук на котором сидишь. В такой ситуации алгоритм должен или вернуть код ошибки или проложить маршрут через часть запрещенной дуги в надежде на то, что причина ее перекрытия осталась в той части дуги, через которую маршрут не пройдет.
Я примерно делал тоже самое на ул. Крыжижановского,находясь в середине улицы я давал запрет в одну сторону,одностороннее движение - при прокладке маршрута предлагает ехать по встречной полосе
iPAQ 4700, iPAQ 2210,CF 1,CF 512, CF 256,sd 1,sd 256, Sony Ericsson К750, Sony Ericsson T610, Фортуна

VctOs
Профессор (5 lvl)
Сообщения: 661
Зарегистрирован: Чт июн 19, 2003 20:36

Сообщение VctOs » Пт май 07, 2004 21:01

Ромик писал(а):Я примерно делал тоже самое на ул. Крыжижановского,находясь в середине улицы я давал запрет в одну сторону,одностороннее движение - при прокладке маршрута предлагает ехать по встречной полосе
Движение задним ходом (в противоположном направлении по дуге с односторонним движением) разрешено только для случая когда стартовая и финишная дуга совпадают. Если они не совпадают, пришлите, пожалуйста сведения о точке старта и финиша и о том, какая дуга помечается как "закрытая".

Ромик
Кандидат (3 lvl)
Сообщения: 129
Зарегистрирован: Вс янв 04, 2004 19:10

Сообщение Ромик » Сб май 08, 2004 09:10

VctOs писал(а):
Ромик писал(а):Я примерно делал тоже самое на ул. Крыжижановского,находясь в середине улицы я давал запрет в одну сторону,одностороннее движение - при прокладке маршрута предлагает ехать по встречной полосе
Движение задним ходом (в противоположном направлении по дуге с односторонним движением) разрешено только для случая когда стартовая и финишная дуга совпадают. Если они не совпадают, пришлите, пожалуйста сведения о точке старта и финиша и о том, какая дуга помечается как "закрытая".
Попробуйте проложить маршрут от Крыжижановского д. 29 до пересечения ее с Профсоюзной улицы,карта прокладывает прямо по этой улице,а часть ее односторонее движение,кстатит его в карте нет,но даже после запрета ехать в одну сторону все равно предлагает ехать туда.
iPAQ 4700, iPAQ 2210,CF 1,CF 512, CF 256,sd 1,sd 256, Sony Ericsson К750, Sony Ericsson T610, Фортуна

VctOs
Профессор (5 lvl)
Сообщения: 661
Зарегистрирован: Чт июн 19, 2003 20:36

Сообщение VctOs » Сб май 08, 2004 10:55

Ромик писал(а):Попробуйте проложить маршрут от Крыжижановского д. 29 до пересечения ее с Профсоюзной улицы,карта прокладывает прямо по этой улице,а часть ее односторонее движение,кстатит его в карте нет,но даже после запрета ехать в одну сторону все равно предлагает ехать туда.
Попробовал.
Изображение

NikolaRC
Студент (1 lvl)
Сообщения: 38
Зарегистрирован: Чт июл 17, 2003 06:48

2VctOs

Сообщение NikolaRC » Пн май 10, 2004 07:32

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

Аватара пользователя
PanD@
Доктор (4 lvl)
Сообщения: 232
Зарегистрирован: Вт окт 28, 2003 16:20

Сообщение PanD@ » Пн май 10, 2004 12:33

Очень приятно, что мой ник вошел в историю создания навигационных программ в России :D
Поэтому можно говорить о том, что решение этой проблемы сводится к полному решению "проблемы Pand@" - поиску непрямого выезда на дорогу из заданной точки с учетом изображенных на карте препятствий и ограничений.
Не могу в очередной раз не отметить, что проблема выезда на дорогу не так страшна, как проблема съезда с неё.
При выезде на дорогу есть возможность видеть препятствия и корректировать движение (пусть даже сначала оно будет в другом, нежели рекомендованно, направлении). По мере сдвига из начальной точки и приближении к дорогам (до которых нет препятствий) маршрут может быть автоматически перепроложен.
Но если неудачно задана конечная точка - задача не сможет быть решена правильно.

Как я понял, длина воздушной дуги никак не учитывается в расчете маршрута. Может быть можно и стОит ввести для неё к-либо вес (штраф) и учитывать в общей протяженности маршрута?
Тогда может получиться, что при чуть большей воздушной дуге сам маршрут получится короче (очень показательно вблизи пересечения дорог).
Для решения "проблемы" PanD@ может быть не обязательно искать непрямой выезд/съезд, а как-нибудь определить (если возможно) по др. слоям наличие препятствия и выставить большой штраф воздушной дуге?

NikolaRC
Студент (1 lvl)
Сообщения: 38
Зарегистрирован: Чт июл 17, 2003 06:48

Сообщение NikolaRC » Пн май 10, 2004 13:11

VctOs прекрасно изложил проблему. Если я правильно понял, проблема не в том, что делать, а как это сделать, исходя из ресурсов КПК. Либо нужны какие-то революционные идеи, а не все те же дуги и веса.

Аватара пользователя
PanD@
Доктор (4 lvl)
Сообщения: 232
Зарегистрирован: Вт окт 28, 2003 16:20

Сообщение PanD@ » Пн май 10, 2004 13:27

2 NikolaRC

Предыдущее сообщение было больше адресовано VctOs.
А то получается "прекрасно изложил проблему" и тут же
"Если я правильно понял".
В такой ситуации бывает лучше спрашивать, чем отвечать.

Закрыто

Вернуться в «PocketGPS Pro и MacCentre PocketGPS»