Я указываю страну в файле конфигурации при запуске 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 - остальные населенные пункты
Возможно это сработает для всего бывшего СССР, для иностранных государств надо пробовать.