Mkgmap

В опциях у меня указано check-styles, list-styles и verbose
Судя по выводу в консоли, наличие стиля mkgmap распознаёт:

Found one style in style
finished check-styles
The following styles are available:
style                1: No summary available
Number of MapFailedExceptions: 0
Number of ExitExceptions: 0

Версию 3980 я пробовал - всё то же самое.

Из описания опций: “The directory path must be absolute or relative to the current working directory when mkgmap is invoked.”
По выводу в консоли видно, что как минимум присутствие моего стиля mkgmap понимает. TYP файл необязателен.

Про файлы стиля цитата из руководства: “The only one of these files that is actually required is the version file, as that is
used to recognise the style. At least one of the points, lines or polygons files must be present or else
the resulting maps will be empty.” У меня в папке стиля version, options и lines.

Я пока тестю. Понятно, в реальном применении я буду подключать кастомный typ. А пока результат видно с помощью GPSMapEdit, которым я конверчу получившийся img в mp. И результат такой, что mkgmap папку моего стиля видит, но стиль не применяет.

В общем, залез я в mkgmap.jar и внутри него заменил в папке styles\default файлы lines и options на мои. После этого всё заработало.

Вывод - последние версии mkgmap опознают присутствие кастомного стиля в отдельной папке, указанной в опции style-file, но применяют всё-равно стиль default, который зашит внутри.

А как же в моих батфайлах с выбором разных стилей все работает? Значит Ваш Вывод не правильный. Попробуй папку со стилем обозвать по другому и повторить эксперимент. Мне кажется что в путях проблема. И я во внутрь mkgmap.jar не лазил, но все работает.

Посмотри мои батфайлы на предыдущей странице.
Я их создавал в текстовом редакторе в DOS-кодировке 866, тогда на экране русский текст отображается нормально, а не кракозябрами.
В сообщении 326 есть ссылка на набор прог установи ее, потом можно обновит проги. Но будет видно все пути, что и где лежит.

Решил проблему. Нельзя выносить опцию style-file во внешний файл с опциями. Если это делать, то поведение будет как у меня.
Если указывать в командной строке --style-file=моя _папка_стиля, тогда всё работает.

Это баг или фича? Думаю, скорее, баг, так как сообщения в консоли в обоих случаях выдаются одинаковые - “стиль есть, всё ок”.

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

Ребята, а кто нибудь разобрался как 3D карты делать?
http://gis.19327.n8.nabble.com/a-new-DEM-File-Option-td5905056.html
Ну и другие смежные темы
http://gis.19327.n8.nabble.com/Mkgmap-Development-f5324443.html

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

Eugeny_B, можно вас попросить опубликовать файл настройки адресации из своего стиля (inc/address)?
Дошла у меня очередь и до адресного поиска, но что-то никак не могу вникнуть в его логику…

# Этот файл содержит все правила, чтобы настроить адресную информацию из тегов,
# которые добавляются при обработке границ.
#
# Состояние: 01.02.2018
# -----------------
# Version : 0.01 - 09.12.2017: Базовый функционал mkgmap 4000
# Version : 0.02 - 10.12.2017: Адаптированн под Россию
# Version : 0.03 - 15.12.2017: Адаптированн для использования со "status" файлом стиля
# Version : 0.04 - 07.01.2018: Добавлен district

# ====================================================================
# first set the country code
# Сначала устанавливаем код страны
# ====================================================================
mkgmap:country!=* & mkgmap:admin_level2=* { set mkgmap:country='${mkgmap:admin_level2}' }
# mkgmap:country!=* & addr:country=* { set mkgmap:country='${addr:country}' }
# mkgmap:country!=* & addr:country=* { set mkgmap:country='${addr:country|country-ISO:}' }
# mkgmap:country!=* & addr:country=* { set mkgmap:country='${country-ISO:alpha2}' }
# mkgmap:country!=* & addr:country=* { set mkgmap:country='${country-ISO:alpha3}' }
# mkgmap:country!=* & is_in:country=* { set mkgmap:country='${is_in:country|country-ISO:}' }

# ====================================================================
# country specific rules first
# Специфические правила для страны первыми
# ====================================================================

# Russia = RUS
# ------------------------------------------------------------
# mkgmap:country=RUS & mkgmap:city!=* & (mkgmap:admin_level4='Санкт-Петербург' | mkgmap:admin_level4='Москва' | mkgmap:admin_level4='Севастополь') { set mkgmap:city='${mkgmap:admin_level4}' }
mkgmap:city!=* & (mkgmap:admin_level4='Санкт-Петербург' | mkgmap:admin_level4='Москва' | mkgmap:admin_level4='Севастополь') { set mkgmap:city='${mkgmap:admin_level4}' }
mkgmap:district!=* & mkgmap:admin_level6=* { set mkgmap:district='${mkgmap:admin_level6}' }
mkgmap:district!=* & mkgmap:admin_level5=* { set mkgmap:district='${mkgmap:admin_level5}' }
mkgmap:district!=* & addr:district=* { set mkgmap:district='${addr:district}' }
mkgmap:region!=* & mkgmap:admin_level4=* { set mkgmap:region='${mkgmap:admin_level4}' }
mkgmap:region!=* & addr:region=* { set mkgmap:region='${addr:region}' }
( mkgmap:region=* | mkgmap:district=* ) { set mkgmap:region='${mkgmap:district}, ${mkgmap:region}'|'${mkgmap:region}'|'${mkgmap:district}' }
mkgmap:region=* & (mkgmap:admin_level4='Санкт-Петербург' | mkgmap:admin_level4='Москва' | mkgmap:admin_level4='Севастополь') { set mkgmap:region='${mkgmap:district}' }
# ( mkgmap:city!=* | mkgmap:city!=* ) & (mkgmap:admin_level7='Санкт-Петербург' | mkgmap:admin_level7='Москва' | mkgmap:admin_level7='Севастополь') { delete admin_level }

# ====================================================================
# common rules for all the rest of countries
# Общие правила для всех остальных стран
# ====================================================================
mkgmap:region!=* & mkgmap:admin_level6=* { set mkgmap:region='${mkgmap:admin_level6}' } 
mkgmap:region!=* & mkgmap:admin_level5=* { set mkgmap:region='${mkgmap:admin_level5}' } 
mkgmap:region!=* & mkgmap:admin_level4=* { set mkgmap:region='${mkgmap:admin_level4}' } 
mkgmap:region!=* & mkgmap:admin_level3=* { set mkgmap:region='${mkgmap:admin_level3}' } 
mkgmap:region!=* & is_in:county=* { set mkgmap:region='${is_in:county}' } 

# ------------------------------------------------------------
# if mkgmap:city is not yet set, try to get it from level 8, 7,9, 10 (in that order)
# если mkgmap:city еще не установлен, попробуйте получить его из уровней 8, 7, 9, 10 (в таком порядке)
# ------------------------------------------------------------
# mkgmap:city!=* & mkgmap:admin_level8=* { set mkgmap:city='${mkgmap:admin_level8}' } 
mkgmap:city!=* & mkgmap:admin_level7=* { set mkgmap:city='${mkgmap:admin_level7}' } 
mkgmap:city!=* & mkgmap:admin_level9=* { set mkgmap:city='${mkgmap:admin_level9}' } 
mkgmap:city!=* & mkgmap:admin_level10=* { set mkgmap:city='${mkgmap:admin_level10}' } 
mkgmap:city!=* & mkgmap:admin_level11=* { set mkgmap:city='${mkgmap:admin_level11}' } 
mkgmap:city!=* & mkgmap:admin_level8=* { set mkgmap:city='${mkgmap:admin_level8}' } 
mkgmap:city!=* & is_in:city=* { set mkgmap:city='${is_in:city}' }
mkgmap:city!=* & addr:city=* { set mkgmap:city='${addr:city}' }

# ------------------------------------------------------------
mkgmap:postal_code!=* & mkgmap:postcode=* { set mkgmap:postal_code='${mkgmap:postcode}' } 
mkgmap:postal_code!=* & addr:postcode=* { set mkgmap:postal_code='${addr:postcode}' } 

# ------------------------------------------------------------
 mkgmap:street!=* & addr:street=* & addr:suburb=* { set mkgmap:street='${addr:street} (${addr:suburb})' }
mkgmap:street!=* & addr:street=* { set mkgmap:street='${addr:street}' }
mkgmap:street!=* & addr:housename=* { set mkgmap:street='${addr:housename}' }

# ------------------------------------------------------------
mkgmap:housenumber!=* & addr:housenumber=* { set mkgmap:housenumber='${addr:housenumber}' }

# ------------------------------------------------------------
mkgmap:phone!=* & phone=* { set mkgmap:phone='${phone}' }
mkgmap:phone!=* & contact:phone=* { add mkgmap:phone='${contact:phone}' }

# ------------------------------------------------------------
mkgmap:is_in!=* & is_in=* { set mkgmap:is_in='${is_in}' }

Eugeny_B, спасибо! Получил письмо, но предлагаю продолжить общение тут. Может кто еще подтянется из заинтересованных.
Я так понял, что ваш метод заключается в принудительном назначении РФ всему, что попадает в карту. Мне такой метод не подходит, т.к. одновременно в сборке присутствует территории нескольких разных государств. Так что адресные настройки должны быть с учетом этой специфики.
С автоматизацией у меня проблем нет - все отлажено и работает уже много лет автоматически в ежедневном режиме. Сейчас же просто перехожу на актуальную версию Mkgmap. А для этого нужно полностью переписать все конфиги (их логика несколько изменилась за 8 лет). Много всего уже поменял, многое еще предстоит. Но весь имевшийся функционал уже переехал. Временно и не регулярно новые сборки пока появляются тут:
https://maptourist.org/tmp/
Теперь же хочу побороть адресный поиск. Но никак не вникну в логику этого дела - как происходит присвоение объектам адресной информации. У меня пока половина точек даже не может подхватить admin_level=2 (страну). Вторая половина вообще - кто в лес, кто по дрова. А части точек населенных пунктов, дорог и POI не присваивается никакой адрески. И как это исправить я пока не придумал. Видимо в каких-то случаях данные о границах из сгенерированных заранее bnd-файлов не срабатывают как надо. Пытаюсь разобраться. Может я не понимаю сути механизма location-autofill=bounds? Как и в каком месте должны присваиваться объекту данные о стране, области и прочим почтовом индексе? Начнем с простого. Допустим, есть тестовая карта Псковской области с частью прилегающих территорий Беларуси и Латвии. И на российской территории есть точка с такими тегами внутри одноименного полигона и более ни чем:
place=hamlet
name=какая-то-деревня
Она расположена в границах РФ (admin_level=2), Псковской области (admin_level=4) Но начнем со страны. Для этого в заранее очищенный файл inc/address добавляем строчку:

 mkgmap:country!=* & mkgmap:admin_level2=* { set mkgmap:country='${mkgmap:admin_level2}' } 

Я ее понимаю так, что во все индексируемые объекты должна упасть информация от границы с тегом admin_level=2 из прекомпилированного набора bnd-файлов. Но нет, адресная информация о стране РФ в нашу точку не добавляется. Собственно как и во всё остальное в границах РФ. Запускаем Gpsmapedit и смотрим, чего там получилось. Наблюдаем печальную картину: всем индексируемым объектам за пределами РФ правильно присвоился код страны и название государства (Беларусь BLR, Латвия LVA). Все, что российское значится как COUNTRY ABC.
Добавляем строчку:

 mkgmap:country!=* & addr:country=* { set mkgmap:country='${addr:country|country-ISO:}' }

Теперь находящаяся рядом деревня с заботливо прописанным country= RU получила в адрес такую информацию. Первая по-прежнему ее не имеет. Но такой способ я не хочу вообще использовать, т.к. вполне вероятны ошибки при заполнении адресных тегов на разных объектах и унификации наверняка не получится. Так что строчку эту убираем. Метод is_in так же для этого не рассматриваем.
Теперь пробуем добавить сведения о области:

mkgmap:country=RUS & mkgmap:region!=* & mkgmap:admin_level4=* { set mkgmap:region='${mkgmap:admin_level4}' } 

Разумеется, ничего не происходит, ибо выше было зафиксировано неработающее присвоение в границах РФ адресной информации о стране. Попробуем без привязки к государственной принадлежности:

 mkgmap:region!=* & mkgmap:admin_level4=* { set mkgmap:region='${mkgmap:admin_level4}' } 

Названия областей прекрасно присваиваются. Но в случае с РФ без привязки к стране.

В связи с этим у меня вопрос: это я как-то не верно размышляю и вообще все не правильно делаю, или в ОСМ какие-то проблемы с границей России?

ЗЫ:
Кстати у меня налажено еженедельное обновление этих файлов с границами при помощи Osmconvert и Osmfilter. Работает заметно быстрее, чем Osmosis. Взято из Вики по Mkgmap. На FreeBSD это происходит примерно так:


OC?=		../osmfilter/osmconvert
OF?=		../osmfilter/osmfilter
MKG?=		/usr/local/bin/java -cp ./mkgmap4107.jar
RM?=		/bin/rm -f --

mkgbnd:
	${RM} local-boundaries.osm.gz
	${OC} local.osm.pbf --out-o5m >local.o5m
	${OF} local.o5m --keep-nodes= --keep-ways-relations="boundary=administrative =postal_code postal_code="  >local-boundaries.osm
	${RM} local.o5m
	gzip local-boundaries.osm
	${RM} ./boundary/local/*
	${MKG} uk.me.parabola.mkgmap.reader.osm.boundary.BoundaryPreprocessor \
	./local-boundaries.osm.gz ./boundary/local/

Я указываю страну в файле конфигурации при запуске mkgmap Country=Россия Abbreviation=RUS
Это Вы называете принудительное назначение РФ? Но если не указывать, то как сказано в документации (mkgmap_r4125 option.txt) будет значение по умолчанию COUNTRY ABC. Я считаю, что это ошибка автора программы. По идее имя страны mkgmap должен брать из файлов границ, причем с учетом name-tag-list: и code-page: 1251.
Я не дошел до такого способа проверки как Вы. Я просто грузил карту в прибор и смотрел, что появлялось в поиске адреса.
При выборе страны.

mkgmap:country!=* & mkgmap:admin_level2=* { set mkgmap:country='${mkgmap:admin_level2}' }

Эта строка давала название страны Россия. Прилегающие Эстония.

# mkgmap:country!=* & addr:country=* { set mkgmap:country='${addr:country}' }

Эта давала (добавляла) все что наши маперы сами вносили в тег addr:country объекта (разные варианты) по этому я ее отключил

mkgmap:country!=* & addr:country=* { set mkgmap:country='${addr:country|country-ISO:}' }

Эта давала (добавляла) название страны по английски. Думаю об этом писать надо здесь http://gis.19327.n8.nabble.com/Mkgmap-Development-f5324443.html
В общем я использовал метод тыка, да и собираю я карту только России.
Я отталкивался от прибора. Как прибор воспринимает адрес. А прибор воспринимает его так поле: № дома, поле: Имя улицы, поле: Имя города(нас.пункта), поле: регион и поле: страна (RUS)
Так как адресация в mkgmap основана на admin_level (возможно за границей оно так и есть? т.е. admin_level соответствует административно территориальному делению) Но у нас в России это почему-то соответствует административно политическому делению. Ну и начал я смотреть разные карты, на приборе и компьютере. И что выяснил, что когда мы ищем города то это мы ищем населенные пункты отмеченные точками. И к адресному поиску это не имеет ни какого отношения. Можно проверить на Вашей карте, спокойно находится город Сергиев Посад, но ни один адрес в таком городе не найдете Вы даже город такой при поиске адреса не найдете. А вот если при поиске адреса задать не “Сергиев Посад”, а “городское поселение Сергиев Посад” (правда на приборе такое набрать невозможно) то на компьютере можно найти адреса (но опять же не все, потому что некоторые Маперы прописали тег addr:city на некоторые улицы или на дома) примеры я привожу сейчас от балды. Я проверял разные населенные пункты и во многих это присутствует. Далее как я уже говорил прибор, как и нормальные люди под адресом понимает №дома, имя улицы, имя населенного пункта, имя региона (область, район), имя страны. Вот я и поставил себе задачу привести данные ОСМ к такому виду, иначе ничего хорошего не получится (с маперами не договориться, у них одно правило не мапить под рендер), но из положения надо выходить. И я как мне кажется нашел более менее приемлимый способ. Скачав данные ОСМ я сначала обрабатываю их программой Osmosis (смотри сообщения №330 и №332 в этой теме) что бы всем городам (city, town) присвоить admin_level7 (он в России не используется), а остальным населенным пунктам admin_level11 (тоже в России не используется) и только после этого я создаю файлы границ, методом тыка переставил строки в файле address и создал карту. Но как выяснилось, все-таки вкралась ошибка и в городе Набережные Челны ничего не найти. Стал разбираться и нашел что город разделен на три района и вот этим районам мапер присвоил admin_level7. Сейчас я скачанные ОСМ данные сначала обрабатываю программой Osmfilter чтобы модифицировать теги admin_level7 в admin_level8, затем Osmosis обрабатывает населенные пункты и только потом границы и карта.
Итог для России
admin_level2 - страна
admin_level4 - города Москва, Санкт-Петербург, Севастополь
admin_level4 - регион (области, края и т.д.)
admin_level5 - добавляем в регион (районы Москвы, Санкт-Петербурга, Севастополя)
admin_level6 - добавляем в регион (районы)
admin_level7 - города
admin_level11 - остальные населенные пункты
Возможно это сработает для всего бывшего СССР, для иностранных государств надо пробовать.

Вот попробуй развить эту тему (у меня с иностранными языками никак) http://gis.19327.n8.nabble.com/Why-is-mkgmap-the-option-country-name-name-td5911420.html
Я так и не понял что они мне отвечали. Но понял, что по этому вопросу надо теребить их. А также надо вводить в ОСМ жеские правила адресации, иначе бардак сохранится. Сейчас смотрел свою карту на приборе, изменил страну на Эстонию поискал адрес в Нарве. Набирал имя города по русски, Только нажал “Н” сразу высветилась “Нарва, Уезд Ида-Вирумаа”, ввожу улицу “Пу” сразу высвечиватся “Пушкина улица”, ввожу № 4, высвечивается четыре позиции:
1я поз. “Александра Пушкина улица 5 Нарва, EST” и три поз. “Александра Пушкина улица Нарва, EST”.
Нажимаю первую (прибор Нуви 1310) указатель “Александра Пушкина улица 5 Нарва, Уезд Ида-Вирумаа Эстония,” указывает на правильную улицу но в районе дома 10, возвращаюсь и смотрю вторую позицию “Александра Пушкина улица Нарва, Уезд Ида-Вирумаа Эстония” указывает на конец правильной улицы в районе дома 69. Следующая позиция в районе остановки Rugodiv на правильной улице, следующая позиция возле дома 21.
Теперь возвращаюсь и набираю улицу по английски “Pu” - высвечивает улицы начинающиеся с Pu, но нужной нет, ввожу улицу “Aleksander” - совпадений не найдено, а ведь есть в ОСМ Здание 5 Aleksander Puškini, но не индексируется так как улице уже присвоено имя по русски. Опять возвращаемся вводим город “Narva”- совпадений не найдено.
Вывод - надо теребить автора программы для правильного адресного поиска. Или теребить Маперов для правильного строгово тегирования для поиска.

Вот еще интересная штука. https://forum.openstreetmap.org/viewtopic.php?id=58978
Я пробовал чтобы смотреть точки в MapSource, навел курсор на магазин клик правой кнопкой создать маршрутную точку и смотришь какой адрес прописывается, но обработка долгая, и срабатывает не везде, пример населенный пункт Скоропусковский, Московская область, Сергиево-Посадский район. В нас.пункте нет наименований улиц и там плагин не работает.

Вот только что провел эксперимент, поменял, было name-tag-list: name:ru,name,name:en,int_name стало name-tag-list: name,name:ru,int_name,name:en
И теперь при выборе страны наименование на родном языке и соответственно улицы на родном языке. Теперь в Narve (Нарве) ищутся адреса на улице Aleksander Pu…(Александра Пушкина) так как там на каждом доме указаны теги addr:country, addr:city, addr:street, addr:housenumber. До этого улица получала русское имя и соответственно дома не искались, так как на них прописана другая улица а не Александра Пушкина. Вот такие пироги… Надо еще экспериментировать.

Разобрался.
В выгрузке Гислаба граница РФ сломана. Отсюда и проблема.
Как починить:

  1. Качаем отношение границы РФ по ссылке www.openstreetmap.org/api/0.6/relation/60189/full
  2. Делаем еще один проход фильтрации перед созданием bnd-файлов и наваливаем через Osmconvert это скачанное отношение к уже отфильтрованным границам.
  3. Делаем bnd-файлы.
  4. Profit. :sunglasses:

А давайте подумаем, как наладить адресный поиск в населенных пунктах без названий улиц? Такое достаточно часто встречается. Вот сам теперь живу в деревне и у меня адрес без улицы совсем. Просто Деревня, номер_дома. Так вот. Mkgmap в этом случае находит ближайшую линию дороги с именем и пихает это имя в mkgmap:label:2. Получается очень странный результат, никак не влияющий на работоспособность поиска. Но Выяснив это я решил унифицировать все такие случаи добавив правило, заменяющее левые названия на “без названия” вот такой строчкой в файл настроек адресации:

mkgmap:country=RUS & mkgmap:street!=* & highway=* { set addr:street='без названия' }

Но это никак не способствует включению адресного поиска - название населенного пункта Гармин не дает ввести. Это начинает работать только если внутри населенного пункта есть хотя-бы одна улица с названием. Выходит, что необходимо название улицы в mkgmap:label:1. Но как туда запихнуть это самое “без названия” и только для улиц с адресацией? У меня не получилось. В лучшем случае такое имя добавлялось ко всем безымянным дорогам. Что не правильно и не нужно. В общем взываю к коллективному разуму.

Валентин, я тебе присылал файл status, обрати внимание, что для рабочего поиска сокращение “ул.” вместо “улица” нужно делать в ТРЕХ местах: 1. highway=* & name 2. addr:street 3. mkgmap:street
То есть “Имя улицы” должно до буквенно совпадать с addr:street указанной на доме и совпадать в момент производства карты с внутренней переменной mkgmap:street при создании индекса.
А иначе поиск работать не будет. Пример твоя уже вчерашняя карта: город Нарва, улица Александра Пушкина, дом 17 на твоей карте не ищется, потому что, в тегах имени улицы есть name:ru=улица Александра Пушкина, а в тегах дома 17 прописано addr:street=Aleksander Puškini, возможно пример не корректный так как в тегах дома 17 прописано еще addr:city=Narva, но поверь, что даже без тега addr:city=Narva поиск все равно работать не будет, так как name:ru и addr:street не совпадают.
Теперь разложим твою строку: Если страна Россия и внутренняя переменная mkgmap:street ничему не равна и highway любой, то установить addr:street=‘без названия’. И сразу вопрос, а куда или кому/чему установить addr:street=‘без названия’.
Ведь нам надо чтобы этот тег был установлен на здании, а highway в данном населенном пункте получил имя ‘без названия’ иначе совпадения не будет и поиск не сработает.
https://www.openstreetmap.org/query?lat=56.36886&lon=38.14211 вот тут хоть и стоит тег на здании addr:place=Скоропусковский и вроде можно его скопировать в addr:street=Скоропусковский, но как проездам, улицам и дорогам прописать name=Скоропусковский я не знаю, мой стиль подставляет не всем этим проездам и т.д. только в этом нас. пункте имя улицы А-108 и поиск работает по ней. Скоропусковский, А-108, дом 2, 3, 6 только три дома. Но это в этом, а в других? Позже проверю как на туристическом приборе, а на Nuvi из этой ситуации выхожу просто: Искать адрес → Город → Прибор просит ввести улицу, а ничего не ввожу и нажимаю “Готово” → получаю список улиц в этом населенном пункте (даже притянутые) Выбираю → Просит ввести №дома, опять готово и выбираю из того что есть (Но не все дома получают притянутый адрес), да и хочется решить эту проблему тоже.

Сокращения нужны только для повышения читабельности надписей на экранах с невысоким разрешением. Для целей организации поиска нужно просто наладить разделение слов в названиях (компиляция с ключем –split-name-index) и отделение их от префиксов и суффиксов (улица, бульвар, шоссе и др.). Для этого в конфигах есть специальный файл, где оно настраивается - roadNameConfig.txt

# russian
prefix1:ru = "улица", "переулок", "проспект", "проезд", "разъезд", "тракт", "площадь", "бульвар", "шоссе", "дорога", "тупик", "микрорайон", "аллея", "линия", "набережная"
prefix2:ru = "им.",   "имени" 
suffix:ru  = "улица", "переулок", "проспект", "проезд", "разъезд", "тракт", "площадь", "бульвар", "шоссе", "дорога", "тупик", "микрорайон", "аллея", "линия", "набережная"

lang:RUS = ru

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