Vovan_Alm писал(а):
Я ЗА, лишь бы были, в typ файле наверное самый здравый вариант... только я не понял про HEX значения... Это значения для Гармина (маппера) или его используют другие программы работающие с польским форматом? Т.е смогу ли я карту сделанную в тайпсете Гармин, с подсоединенным typ Topo скомпилировать, к примеру, с СГ?
Hex-значения в общем случае в каждом тайпсете разные. Ну нельзя в Гармин использовать многие идентификаторы которые есть в топо. Поэтому создавать тип-файл с такими идентификаторами не имеет смысла, хоть он, возможно, и будет нормально работать в редакторе, но скомпилировать в формат Гармин такую карту не получится.
Поэтому в таком тип-файле имеет смысл использовать идентификаторы из диапазонов предназначенных для кастомных типов.
Вот как вижу решение я, если создаваемую карту планируется использовать в разных навигационных программах.
Исходную карту имеет смысл редактировать в самом универсальном тайпсете. На данный момент, на мой взгляд, это тайпсет Гармин, засчет наличия больших диапазонов для кастомных типов, и благодаря имеющейся возможности в MGE редактировать все возможные поля в данном тайпсете, в том числе адресную инфу у полигонов и т.п.
Затем перед компиляцией карты в другие форматы (помимо Гармин) необходимо свести все используемые типы к конкретному набору используемому в выбранном конечном формате (Навител, Русса, СитиГид, 7 дорог и т.п.) использую для это таблицы/конфиги перехода от одного набора типов к другому. Для этого удобно использовать mp2mp или mpUtilities. И только после такого преобразования компилировать в конечный формат (СитиГид например).
При таком подходе возможен и обратный вариант. Например исходник карты редактируем в тайпсете ТОПО - если данного набора типов Вам достаточно. А в случае если карту нужно скомпилировать под Гармин, то используем конфиг перехода из тайпсета ТОПО - в тайпсет Гармин, а все недостающие в Гармин типы будут доопределены при помощи тип-файла, но идентификаторы всех дополнительных типов (тех которых нет в стандартном наборе Гармин но есть в ТОПО), разумеется будут лежать в трехбайтных диапазонах предназначенных для кастомных типов и они не будут, не могут и не должны совпадать с HEX-идентификаторами используемыми в тайпсете ТОПО.
Добавлено спустя 20 минут 39 секунд:Vovan_Alm писал(а):
Ну думаю раз можно самому менять в таблице идентификатор для МПС (вроде как видел в тайпсете Гармин, но полностью протестировать не позволяет как раз отсутствие typ файла ТОПО)- то значит все эти объекты должны переносится в шейпы согласно тому, что мы указали в столбце идентификатор для МПС. Таким образом один раз настроив редактор - мы сможем всегда получать шейпы с нужными значениями. (притом каждый может настроить присвоение идентификатора МПС для себя)
Вообще авторам редактора, нужно при переводе в шейпы использовать то что пользователи написали в колонку МПС, таким образом я могу прописать банкомат как BANK (т.е стандартный тип), а могу прописать как Custom_poi_bankomat (т.е как кастомный тип), или ВООБЩЕ НИЧЕГО НЕ ПИСАТЬ В ЭТУ КОЛОНКУ, и тогда этот объект не Переносится в Шейпы!!! Т.е в Карте гармина его не будет... Но этот объект будет в карте для Сити Гида, к примеру...
Все текстовые идентификаторы типов используемые в MPC, в том числе кастомные типы, строго сооствествуют вполне определенным значениям HEX-идентификаторов!!! И конвертироваться в шейпы они должны одним единственным и однозначным образом. Ни каких вмешательств со стороны пользователя и настроек под себя в данном процессе в редакторе предусмотрено не должно быть!!! Иначе будет каша, путаница и рассогласование идентификаторов типов, например между итоговой картой в формате Гармин полученной при помощи MPC и использованным при ее же создании тип-файлом и т.п. А скомпилировать такой исходник при помощи cGPSMapper может, в зависимости от используемых типов, вообще не получиться. Согласитесь все это как то криво?
Все необходимые преобразования типов необходимо делать только в исходники в польском формате.
А таблица соответствия шестнадцатиричных идентификаторов текстовым идентификатором MPC должна быть жестко защита в MGE без возможности вмешательства со стороны пользователя. Поскольку соответствие между этими идентификаторами однозначное, такое как реализовано в MPC и ни какие изменения здесь не уместны и не допустимы!
Кроме того, только при таком подходе один и тот же исходник всегда можно будет скомпилировать и при помощи MPC и при помощи cGPSMapper. И это, однозначно, правильный подход.