HPC.ru lite - Все форумы
Форум: PocketGPS Pro и MacCentre PocketGPS
Тема: Первые впечатления
Страницы: 1 2 [3] 4 5 6

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

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



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

Маршрут прокладывается по графу дорожной сети при помощи гарантирующего оптимальность результата алгоритма Дейкстры на основании пошлин, указанных картографами как оценка времени, требуемого на проезд по дуге. Затраты времени на маневры учитываются только в тех местах, где на карте явно изображены дуги маневров (территория Москвы и Зеленограда). Критерием оптимальности маршрута является минимизация суммы пошлин дуг. "Въезд" и "выезд" из точек старта и финиша, расположенных вне дуги графа на геометрически ближайшую дугу (соответственно стартовую и финишную) осуществляется по воздушной прямой без учета существующих на местности и изображенных на карте препятствий (бордюрный камень, здания, водоемы, железные дороги, кустарник, газоны и т.д.).

Не стреляйте в пианиста, он играет как умеет.
Ядро не вступает в переговоры с пользователем. Иногда оно возвращает оболочке код ошибки. Кода ошибки "движение по стартовой дуге перекрыто" пока не предусмотрено, думаю, добавить его не очень трудно, но пока не вижу особого практического смысла.

Я не могу похвастаться знанием тонкостей реализации этой ситуации в других программах. Согласен с тем, что алгоритм поиска стартовой и финишной дуг реализован со значительными допущениями (есть, например, т.н. "проблема Pand@" - неучет препятствий при поиске ближайшей дуги). По мере возможности я знакомлюсь с другими программами на предмет наличия намека на решение "проблемы Pand@", но пока ничего полезного найти не смог. Разве что кроме старого доброго ЛазерМапа, в котором "проблемы Pand@" автоматически решалась "нулевым вариантом" - маршруты можно было прокладывать только между точками, расположенными на дугах графа.

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

Возможно оправдано вынести реализацию этого права в настраиваемые опции.

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

Я примерно делал тоже самое на ул. Крыжижановского,находясь в середине улицы я давал запрет в одну сторону,одностороннее движение - при прокладке маршрута предлагает ехать по встречной полосе
VctOs [07.05.2004 21:01] :
Движение задним ходом (в противоположном направлении по дуге с односторонним движением) разрешено только для случая когда стартовая и финишная дуга совпадают. Если они не совпадают, пришлите, пожалуйста сведения о точке старта и финиша и о том, какая дуга помечается как "закрытая".
Ромик [08.05.2004 09:10] :
Движение задним ходом (в противоположном направлении по дуге с односторонним движением) разрешено только для случая когда стартовая и финишная дуга совпадают. Если они не совпадают, пришлите, пожалуйста сведения о точке старта и финиша и о том, какая дуга помечается как "закрытая".
Попробуйте проложить маршрут от Крыжижановского д. 29 до пересечения ее с Профсоюзной улицы,карта прокладывает прямо по этой улице,а часть ее односторонее движение,кстатит его в карте нет,но даже после запрета ехать в одну сторону все равно предлагает ехать туда.
VctOs [08.05.2004 10:55] :
Попробовал.
http://www.77.ru/for_handy/krzhizh.jpg
NikolaRC [10.05.2004 07:32] 2VctOs:
Уважаемый VctOs, в вашем ответе много новой информации и все это требуется обдумать, на что необходимо время. Пока я только хочу прояснить некоторое недоразумение. Говоря о ногочисленных рекомендациях, я вовсе не имел в виду рекомендации и сложившуюся практику обработки проблемы выезда на дугу с запрещенным движением, поскольку, как честно признался в своем сообщении, достаточно плохо представлял себе, что такое вообще стартовые и финишные дуги. Имелось в виду, повторюсь, что если в работе алгороитма возникает особая ситуация ( я думаю, что необходимость проезда по закрытому участку иначе назвать нельзя), хорошим (правильным, дружественным к пользователю) стилем программирования будет информирование его об этом и предложение возможных вариантов решения проблемы, но не принятие самостоятельных решений, пользователем не санкционированных(возможно, и путем настраиваемых опций). Но как я понял, этим занимается не ядро, а оболочка, разработанная МакЦентром.
PanD@ [10.05.2004 12:33] :
Очень приятно, что мой ник вошел в историю создания навигационных программ в России
Не могу в очередной раз не отметить, что проблема выезда на дорогу не так страшна, как проблема съезда с неё.
При выезде на дорогу есть возможность видеть препятствия и корректировать движение (пусть даже сначала оно будет в другом, нежели рекомендованно, направлении). По мере сдвига из начальной точки и приближении к дорогам (до которых нет препятствий) маршрут может быть автоматически перепроложен.
Но если неудачно задана конечная точка - задача не сможет быть решена правильно.

Как я понял, длина воздушной дуги никак не учитывается в расчете маршрута. Может быть можно и стОит ввести для неё к-либо вес (штраф) и учитывать в общей протяженности маршрута?
Тогда может получиться, что при чуть большей воздушной дуге сам маршрут получится короче (очень показательно вблизи пересечения дорог).
Для решения "проблемы" PanD@ может быть не обязательно искать непрямой выезд/съезд, а как-нибудь определить (если возможно) по др. слоям наличие препятствия и выставить большой штраф воздушной дуге?
NikolaRC [10.05.2004 13:11] :
VctOs прекрасно изложил проблему. Если я правильно понял, проблема не в том, что делать, а как это сделать, исходя из ресурсов КПК. Либо нужны какие-то революционные идеи, а не все те же дуги и веса.
PanD@ [10.05.2004 13:27] :
2 NikolaRC

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