Спасибо, потестил свой скрипт, получил хороший результат. Для проверки на выходной файл карты натравил ещё раз скрипт:
StrNamePref_1.6a.pl sverdl_pref.mp
файл изменений оказался пустым, входная и выходная карта одинаковыми, что говорит о том, что менять там уже больше нечего.
Нашёл на карте несколько интересных названий:
Памятник Клавиатуре - координаты 56.832539,60.607620
ул. Большой Шарташский каменный карьер - реально так улица называется?
Бульвар Культуры - вопрос, слово Бульвар написано с большой буквы, это означает, что оно входит в название этой улицы? Или можно преобразовать в Культуры бул.? Почему спрашиваю, потому что у нас в городе есть проспект Бульвар Мира, где слово Бульвар является частью названия.
Если на карте есть названия улиц, в которых тип улицы является её названием, то в файле StrNamePref.ini надо написать их названия целиком, например:
тогда они не будут преобразованы.
Можно, конечно, поизвращаться и вставить правило, что если первая буква заглавная, а остальные маленькие, то не преобразовывать, но этот вариант мне не нравится.
Во-первых, заглавной буква может оказаться случайно, например умная клавиатура или программа, делающая первую букву предложения заглавной, или сам человек по запарке так написал.
Во-вторых, в каждом городе таких названий всего по нескольку штук и наберётся, добавить в исключения будет не сложно.