Jump to content
GPS навигатор СитиГИД
YoGun

Конструктор и конвертер для СитиГИД 8 | создание карт

Recommended Posts

На форуме МГЕ? На кой там? Тут же актуальнее. Мы же все пляшем вокруг конструктора и маршрутизации в СГ. Меня она больше интересует. Вы точно знаете, что МГЕ точно понимает алгоритмы расчета маршрута в СГ или это предположение - приглашение к диалогу?

Share this post


Link to post
Share on other sites

Конечно предположение. Но мне кажется более вероятно, что разработчики МГЕ самостоятельно изучат алгоритмы прокладки СГ и добавят такую функцию в свою прогу, чем что кто то из осведомленных лиц ответит вам тут по существу.

Share this post


Link to post
Share on other sites

Ну вообщето и в НН иногда прокладывается маршрут не так как в GPSMapEdit. Ну и соответственно в СГ тоже. ИМХО Просто програмно в программах навигации заложен немного другой алгоритм маршрутизации, в отличии от "польского формата", поэтому бывают несоответствия. Я вот например выставляю класс дороги, тип, ограничение скорости (ну и там односторонняя, запреты чего либо и т.д., если нужно) - но до сих пор так и не понял, что такое рёбра, а тем более их скоростные параметры. Может в этих "скоростных параметрах рёбер" и "порылась собака"? Даже вот к примеру: Прочие загородные (0x3) у меня выставлен класс дороги 2, ограничение скорости 80, а при движении, загорается знак 90, и соответственно о привышении говорит после 90. (Кстати "Шоссе основное" (0x2), класс 3, ограничение 90 - обрабатывается правильно). Соответственно, или СГ не учитывает все данные заложенные в карте в "полише", либо сам конструктор решает - какой дороге какое преимущество и ограничение дать. Так что поддержу в вопросе Zauber - хотелось бы узнать как правильно настроить тип-класс, т.к. мне кажется что "ограничение" выставленное в GPSMapEdit не учитывается, а просто тип-класс.

Share this post


Link to post
Share on other sites

Кстати "об этажности". Некоторым не нравится эта задумка (как по мне - вообще классная фишка программы!!!). Просморев много вариатов этажности - карта смотрится очень живенько и красиво - прям как если в лобовое смотреть, типа как у лётчика и таксиста в анекдоте - "Видимость ноль - иду по приборам!" Так вот заметил такую фишку: При выставлении 1 этаж (по крайней мере у меня на обоих девайсах) показывается только фундамент без окон. К примеру 9 этажка - восемь этажей с окнами и т.д. Соответственно - если к примеру, на жилых домах частного сектора (1 этажных) ставить 2 этажа, а например сараи-гаражи 1 этаж - карта думаю будет вообще классно смотреться. Например даже ночь - дом с окнами, а гараж рядом размером в пол дома без окон. Ну и соответственно, кол-во окон будет соответствовать во всех домах правильно - при увеличении на 1 этаж реальной этажности. Понимаю что эта функция реализована чисто для визуальной разницы, но если всё сделать так - вообще реал получается. Ну и соответственно - кого не прикалывает - легко в программе отключить 3D дома.

  • Upvote 1

Share this post


Link to post
Share on other sites
Вопрос: как можно предварительно точно проверить маршрутизацию карты в исходнике, конвертируемой для СГ-7 (для правильной настройки типа, класса и скоростных параметров ребер)?
присоединяюсь... Такой инструмент просто необходим!!! Edited by Василич

Share this post


Link to post
Share on other sites
но до сих пор так и не понял, что такое рёбра, а тем более их скоростные параметры.
Вот, вот, я тоже.Пожалуйста освятите, ктонить этот вопрос, или дайте ссылку. Спасибо. Edited by Василич

Share this post


Link to post
Share on other sites

Как заставить в конвертере обрабатывать запрет проезда по времени??? на определенном участке дороги

Share this post


Link to post
Share on other sites

korefan,в конверторе никак а вот корректировкой можно

Share this post


Link to post
Share on other sites

...но до сих пор так и не понял, что такое рёбра, а тем более их скоростные параметры. Может в этих "скоростных параметрах рёбер" и "порылась собака"? Даже вот к примеру: Прочие загородные (0x3) у меня выставлен класс дороги 2, ограничение скорости 80, а при движении, загорается знак 90, и соответственно о привышении говорит после 90. (Кстати "Шоссе основное" (0x2), класс 3, ограничение 90 - обрабатывается правильно).

"Ребра" дорожного графа - это полилинии дорог (по аналогии скелета, как грудная клетка состоят из ребер, так и дорожный граф)). Скоростные параметры ребер - это "тип дороги" (на вкладке "Свойства" в ГМЕ), "ограничение скорости" и "класс дороги" (на вкладке "Маршрутизация" в ГМЕ").

СГ-7 сообщает не по фактическому ограничению скорости на ребре дорожного графа, выставленному картописателем (как я ни боролся за это)), а от типов дороги. На форуме есть табличка где то по каким типам какое скоростное ограничение оглашается, поищи. В двух словах все утрированно. Загородние дороги по российским ПДД -90, автомагистраль -110. Городские дороги -60, внутрикварталки - вроде 20. Так что пока как ни рисуй, все равно получишь... сообщение то, которое забито в алгоритме программы (если бы не ув.Вера в теме, сказал бы как есть).

Я вот щас экспериментирую, т.е. понимая, что исходник один и каждый раз его переделывать не комильфо, стараюсь сделать универсальную маршрутизацию под разные программы. То есть, например, в городе всем дорогам присвоить то скоростное ограничение, какое есть по правилам ПДД и дорожным знакам, а не предполагаемой скорости проезда той или иной улицы в угоду нужной маршрутизации. Маршрутизацию стараюсь настроить именно классами и типами дорог. Изначально всем внутриквартальным и практически всем малым улицам - класс 0. Остальные уже по ходу. Получается нормально, но вот хочется все таки сделать удобнее некоторые моменты, т.к. в определенных местах в нашей столице удобнее и быстрее проехать имено через малую улицу, чем париться на крупной, но СГ в отличие от ГМЕ никак не хочет туды меня заводить (хоть и расстояние меньше получается, вот один пример из ГМЕ и СГ-7 по одной карте):

Поясню: Кенесары и Валиханова крупные улицы и класс дорог у обоих =1. Ул.Тараз - малая и класс дороги =0. Скорости у всех одинаковые =60. Тут либо СГ боиться левого поворота (в скрине ГМЕ), либо класс дороги его убивает.

Вот и испрашаю аффторов как мне реализовать, как на скрине в ГМЕ с существующей прокладкой в программе? И короче и проще)).

Edited by Zauber

Share this post


Link to post
Share on other sites

СГ-7 сообщает не по фактическому ограничению скорости на ребре дорожного графа, выставленному картописателем (как я ни боролся за это)), а от типов дороги.

Ну это тогда бесполезная функция получается, потому как врать будет постоянно. Передайте тому, кто это придумал, что он в корне неправ. Ограничение скорости - это должен быть самостоятельный атрибут, независимый от других. Аналогично должны работать и прочие ограничения (по габаритам, по массе и т.п.), если таковые когда-нибудь появятся...

Edited by sergeyastakhov

Share this post


Link to post
Share on other sites

korefan,в конверторе никак а вот корректировкой можно

а по подробнее что и где и как и чем??? Спасибо

Share this post


Link to post
Share on other sites

Ну это тогда бесполезная функция получается, потому как врать будет постоянно. Передайте тому, кто это придумал, что он в корне неправ. Ограничение скорости - это должен быть самостоятельный атрибут, независимый от других. Аналогично должны работать и прочие ограничения (по габаритам, по массе и т.п.), если таковые когда-нибудь появятся...

Говорил уже в разделе тестирования. Написал в идеях на реформале СГ. Толку пока 0.

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

Share this post


Link to post
Share on other sites

Поскольку не раз было озвучено, что разработчики MicroGisEditor работают в тесно контакте с разработчиками МИТ-а, большая просьба ответить на один простой вопрос:

Алгоритмы расчета маршрута "Оптимальный" и "Короткий" в навигационной программе СГ-7 и МГЕ одинаковые или есть разница?

Share this post


Link to post
Share on other sites

основана на пожеланиях картографов, которые при конвертации через конструктор игнорируют скоростные ограничения из польского (в виду нежелания перелопачивания своих исходников и изменения уже настроенной маршрутизации (как я выше писал не типами и классами дорог, а скоростными ограничениями в угоду нужной прокладки маршрута. Это же проще))).

Ну тогда надо просто сделать настройку в конструкторе - игнорировать ограничения или нет. Тогда все будут довольны. И можно будет хотя бы на OSM-овских картах использовать расставленные ограничения - там нет никаких проблем с перелопачиванием mp- исходника в виду отсутствия такового.

Edited by sergeyastakhov

Share this post


Link to post
Share on other sites

Ну тогда надо просто сделать настройку в конструкторе - игнорировать ограничения или нет. Тогда все будут довольны.

Такая настройка в Конструкторе есть (при загрузке полиша).

Спросил на форуме MicroGisEditor про алгоритмы маршрутизации. Вот что мне ответили:

"Zauber писал(а):

1. Очень интересует вопрос: Режимы прокладки маршрутов "Короткий" и "Оптимальный", алгоритмам какой навигационной программы соответствуют (CityGuide v.5; v.7, Navitel и т.д.) или это полностью свой алгоритм?

пожелание: очень хочется что бы режимы соответствовали полностью (до мелочей) алгоритму новой версии CityGuide v.7, что бы была возможность тестирования маршрутизации до вывода карты. На первый взгляд алгоритмы очень похожи, но хочется как бы офф. подтверждения.

Нет, подтверждения не будет. Все алгоритмы - разные - ГМЕ, Навител, МГЕ, СитиГид. Это изюминка программы, алгоритмом в "чистом виде" никто не поделится, даже с партнером. Хотя если нам предоставят алгоритмы, мы введем хоть по Навителовски, по ГМЕ, по IGo, по СитиГид.

Наш алгоритм базируется на алгоритме построения оптимальных и квазиоптимальных маршрутов Форда-Беллмана. Он же войдет и во ВЬЮВЕР. Сейчас реализована только первая часть - прокладка по транспортной сети. Позже будет реализована вторая часть - прокладка по пересеченной местности."

Так что парни, не расслабляемся. Маршрутизацию надо проверять ТОЛЬКО уже на готовых картах. Никакие редакторы пока не помогают(((.

Хотя навскидку СГ и МГЕ в режиме "Оптимальный" ну очень похожи. Обои боятся левых поворотов на коротких городских маршрутах как огня)), даже при левом повороте с большего типа дороги на меньший почему то.

Edited by Zauber

Share this post


Link to post
Share on other sites

Обои боятся левых поворотов на коротких городских маршрутах как огня)).

это да - задолбало уже выискивать такие места и пытаться с бубном плясать, чтобы хоть как-то выровнять маршрутизацию, Как по мне - лучшее решение будет - ввести в узле флажок "бояться или нет левых поворотов". Если это регулируемый перекресток и проезд налево по стрелке - чего его бояться? Более того, у нас куча главных дорог, которые поворачивают налево, и ВСЕ им уступают дорогу... А СГ это по барабану. Для крупных городов может и помогает статистика (если она есть), а вот в более мелких - швах.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Ну это тогда бесполезная функция получается, потому как врать будет постоянно. Передайте тому, кто это придумал, что он в корне неправ. Ограничение скорости - это должен быть самостоятельный атрибут, независимый от других. Аналогично должны работать и прочие ограничения (по габаритам, по массе и т.п.), если таковые когда-нибудь появятся...

Почему же он в корне неправ? Как по мне, то всё логично и экономно. Все городские дороги по-умолчанию считаются 60-ти километровыми. Как, собственно и Вы считаете, передвигаясь по городу согласно правилам ДД. Как раз приравнять атрибут скорости к знакам ограничения скорости будет в корне неверно.

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

На господина Галичского надежды нет, он уже выразил своё отношение к этому вопросу. Авторы МГЕ пока идут по пути косметического "улучшения" формата, введя свой тайпсет (от чего Галичский тоже наотрез отказался). Но этого пока мало.

Переход на профессиональные редакторы для профессиональной подготовки карт отсечёт минимум 90% картографов-любителей.

Формат (или идеология) ОСМ для многих тоже не подходит (необычен, неприемлем, неприятен и пр.)

Так что давайте исходить из того, что есть. А при том, что есть - это самое приемлемое решение.

Edited by OuldMan

Share this post


Link to post
Share on other sites

в СитиГиде внешние ноды не нужны. Важно, чтобы дороги доходили точно до границы кавера (0x004b).

Насколько точно нод должен лежать на границе кавера? При интенсивном редактировании области кавер чуть-чуть (совсем чуть-чуть, на полметра) сдвинулся. Переделать несложно, гораздо сложнее дождаться, когда соседние четыре области будут переделаны.

Какое смещение считать некритичным?

Share this post


Link to post
Share on other sites

OuldMan,

любое смещение. Если у вас чучуть сдвинулся кавер то можно:

1) Поставить его обратно руками

2) Взять нормальный кавер из копий

3) Если есть граница области, преобразовать ее в полигон кавера.

Share this post


Link to post
Share on other sites

Схема конвертирования пои из mp в СитиГид

Спасибо за словарь.

Но мне он кажется менее юзабельным, чем из старого хелпа, в котором это выглядело так:

Map Edit Классы объектов (категории) Группы объектов Type/Code Название в поиске СитиГида Название в Конструкторе Акроним Код Название группы 0xF601 Банкоматы ATM ATMBNK 18089 Финансы Обмен валюты Currency exchange CURNCY 18090 Финансы Налоговые службы Tax Inspectorate NALOGI 18147 Финансы 0x2F06 Банки Bank BANKES 18035 Финансы

Он он старый, неактуальный и, посему, вредный.

Можно ли обновить словарь акронимов? Хелательно в экселе, чтоб можно было пересортировать как хочется, а не воспринимать с листа.

Edited by OuldMan

Share this post


Link to post
Share on other sites

Немного пролью свет как можно учитывать роутинг что в польском *.mp для пересчета на значения скоростей (ребер) СГ :)

1. Конструктор имеет 2 режима учета конвертации роутинга.

Режим №1 = когда на 1м этапе картограф ставит птичку = Ignore Route parameters (4я сверху или 5я снизу).

Если у Вас стоит птичка то роутинг берется "примитивно", целыми скоростями прописанными каждому типу дорог.

(что-то типа малой улице 40 км/ч, а крупной улице = 60 км/ч)... (честно - никогда не понимал такого примитивизма. есть 2 дороги по которым можно ехать 60, но одна из них имеет или асфальт лучше, или меньше ям, или шире, или еще какой-то нюанс... это можно отрегулировать иногда скоростью. а иногда только роутингклассом когда скорость должна быть у обеих дорог одинакова ...)

Режим №2 = когда птичка Игнорировать роутинговые параметры - не стоит.

В этом случае происходит пересчет в скорости на ребра для СГ, но с учетом того что значения роуткласса может быть разное, как и разный тип дорог.

Пересчет (адаптацию) этой части конструктора писал я сам - примерно в конце 2010г начале 2011г.

Периодически каждые 2-3 месяца в пересчете что-то улучшал и корректировал.

Мы для украинских карт используем именно Режим №2.

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

Хотя в готовой карте на выходе получаются не привычные не круглые значения, а значения типа 35,37,43,45, 47,48,53 и т.д.

Но маршруты строятся лучше и логичней.

Эта часть она в общем-то открыта и можно посмотреть в файле PolishConvertor открыв его блокнотом - в конце файла, со строки примерно 3880 ...

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

То, что пересчет роутинга в режиме № 2 делается лучше (если конечно все нормально в самом исходнике) - то это проверено на соревнованиях навигации. Попробуйте не ставить птичку на "Игнорировать роутинговые параметры" когда вы загружаете в конструктор карты польского формата *.mp

Претензий к прокладке машрута от точки до точки в версии 7.1-7.2 нет: везде был первый или второй результат (соревнования 7 экипажей проводимые doroga.ua) То что СГ7 не любит разворотов - это факт.

Я попробую подсказать разработчикам МГЕ идеи которые бы дали близкий результат к тому как пересчитывает СГ маршрут в режиме оптимальный.

Но не знаю когда на это будет время...

Что касается ключа - который бы подсказывал какая скорость разрешена на участке, то тут не все так просто.

Однозначно не нужно брать ту скорость что предназначена для подсчета роутинга - это совсем не скорость ограничения режима.

Мы думали у себя в картах ввести ключ типа LegalSpeed=, однако надо вводить не просто ключ, а вектор - то есть еще прописывать узел начала и конца действия LegalSpeed, так как в одном направлении дороги может стоять одно ограничение скорости, а в другом - нет или другое.

Хотя если не быть педантом, то такого параметра будет вполне достаточно для 99% случаев.

Поэтому проанализировав что сделал СГ - то это наиболее простое и разумное решение, надо его чуть-чуть модернизировать с учетом вышесказанного и тех моментов что в каждой стране могут быть свои нюансы ПДД ...

Edited by Vadim_O

Share this post


Link to post
Share on other sites

OuldMan,

любое смещение. Если у вас чучуть сдвинулся кавер то можно:

1) Поставить его обратно руками

2) Взять нормальный кавер из копий

3) Если есть граница области, преобразовать ее в полигон кавера.

У меня нет проблем с переделкой своего кавера. Я предвижу проблемы с переделкой кавера соседями.

Сейчас мой кавер сделан сделан так, что он стыкуется с соседними каверами нод в нод. Но при таком кавере внешние ноды дорог немного не лежат в кавере. Т.е. пределывать надо и все соседние. Вот я и спрашиваю, - когда нужно переделывать, а когда можно обойтись без переделки?

Share this post


Link to post
Share on other sites

OuldMan,насколько я понимаю, если помимо ваших карт в атласе есть еще типа обзорной карты россии, то можно не заморачиваться на счет каверов в таком случае.

Share this post


Link to post
Share on other sites

Почему же он в корне неправ? Как по мне, то всё логично и экономно. Все городские дороги по-умолчанию считаются 60-ти километровыми. Как, собственно и Вы считаете, передвигаясь по городу согласно правилам ДД. Как раз приравнять атрибут скорости к знакам ограничения скорости будет в корне неверно.

Я сказал почему - ошибок в результате очень много. Сегодня на дачу ездил по официальной карте - за 60 км пути раз 20 был неверный сигнал о превышении. Многие заезды/съезды с КАД (но не все) находятся вне населённого пункта и разрешённая скорость там 90 вместо 60. А обозначаются они одним типом дороги. И мне кажется сомнительной идея ставить другой тип у куска дороги внутри НП только из-за наличия/отсутствия знака 40 на ней.

Далее - тип дороги используется для фильтрации показа на разных масштабах. Многие трассы в области проходят через населённые пункты. Если там каждый раз менять тип дороги - в итоге получается "пунктир" на карте вместо дороги.

Если хотя бы на картах OSM можно будет избежать такого бедлама - я был бы очень рад.

Как раз приравнять атрибут скорости к знакам ограничения скорости будет в корне неверно.

Почему приравнять? У дороги должно быть 3 независимых атрибута - тип (для рендеринга/генерализации/etc), максимальная скорость (для предупреждений) и средняя скорость (для маршрутизации). Если какого нибудь из них нету - тогда можно выставлять умолчание по другим. Но только в этом случае.

Формат (или идеология) ОСМ для многих тоже не подходит (необычен, неприемлем, неприятен и пр.)

Инструменты OSM можно применять и для своих данных тоже, не загружая их на общий сервер. А формат данных OSM позволяет описать любые данные, да и JOSM как редактор вполне хорош. Так что было бы желание.

Если хочется быть заложником старого формата - ну что ж, воля ваша. Но только дайте возможность использовать правильные данные тем, кто этими рамками не скован.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×