Многоязычный адресный поиск

Тут по названиям в Казахстане прошелся очередной европейский миссионер переведя все названии на казахский с русского.
Соответственно все адресных валидаторах стало наперекосяк. :frowning:
Конечно все эти правки откатили, но проблема то остается. :confused:
Теоретически названия на казахском это правильно, но исторически сложилось что маперы в Казахстане все пишут на русском.
И это проблема!! Все равно потом когда нибуть придется названия писать на 3 языках - казахском, английском и русском. В соответствии с политикой языков В Казахстане.Причем казахский первым как офф госязык.

Теперь возникает вопрос.
Как правильно это начать делать? Что бы поиск был на всех 3 языках.Ну или еще каких если кто захочет их добавить.
При помощи associatedStreet? Что то про него в вики скудно. И как оно будет обрабатываться, например при помоши того же osm2mp? Ну а про всякие вспомогательные утилиты типа всяких валидаторов вообще большие сомнения.

Хочется понять и попробовать сделать на каком нибуть небольшом нас. пункте.
Если получиться то потихоньку буду продолжать, хотя объем работ ГИГАНСКИЙ

Welcome to Ukraine!

Уже довольно давно в Украине используются отношения associatedStreet для указания адресов (названий улиц) на разных языках.

Спрашивайте про это в украинской ветке.

А в чем проблема просто добавлять name:lang к улице, городу, etc? Когда надо будет, просто поменять name на любой предпочтительный вместе с адресами на домах. На глагне например всё работает и без отношений, если соответствующие названия на других языках указаны.

  • Одноязычный тег addr:street на зданиях (видимо решается через assotiatedStreet)
  • Одноязычные теги addr:country, addr:region и т.д на полигонах населенных пунктов
    Вот основные текущие проблемы многоязычного адресного поиска.

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

Для названий улиц понятно.НО. У нас и названия областей, городов на русском и казахском могут, мягко говоря, не совпадать.
Получится путаница. Область, город на одном языке, улицы на другом,

Кажется меня не поняли. Многоязычный поиск работает прямо сейчас с name:lang.
Примеры:
https://www.openstreetmap.org/search?query=kazan%20Pushkina%20Street%2052#map=19/55.79430/49.12530&layers=D
https://www.openstreetmap.org/search?query=%D0%BA%D0%B0%D0%B7%D0%B0%D0%BD%20%D0%9F%D1%83%D1%88%D0%BA%D0%B8%D0%BD%20%D1%83%D1%80%D0%B0%D0%BC%D1%8B%2052#map=19/55.79430/49.12530&layers=D

А трудности будут только при переходе с одного языка на другой. И то мне кажется никто не мешает при конвертации настроить использование не name, а нужного name:lang для связки адресов. ну даже если прям всё перетегировать, мне кажется лучше скрипт какой наладить, чем вручную всё перелопачивать в отношения.

Это же просто ссылки на name - в чём тут проблема?
assotiatedStreet просто использует другой тип ссылки, отношение вместо name, некоторое упрощение алгоритмов за счёт усложнения маппинга, но по большому счёту замена шила на мыло получается.

Для нормального многоязычного поиска надо просто использовать эти ссылки именно как ссылки а не как значения, а реальные названия вытаскивать из самих объектов. Т.е. addr:street->highway[name]->name:
Эта связывание и так выполняется в конвертерах, там надо просто добавить логику выбора соответствующего атрибута. Лёша в своём конвертере в своё время отказался такое делать по каким-то своим соображениям, но существовал сторонний патч к нему, довольно простой.

начать стоит с поиска объектов где есть
name
и отсутвует
name:ru
У вас таких много

Адреска, откройте в josm Дома на Украине или в ташкенте, будет образец.

Одноязычные теги addr:country, addr:region и т.д на полигонах населенных пунктов решаются обычно уже в рамках конвертеров (osm2mp например)

dansit
Через вики вышел на украинский форум
https://forum.openstreetmap.org/viewtopic.php?pid=305091#p305091

  • название улиц для отображения (рендеринга) у них вытаскивается из name:* с линии улицы
  • название улицы для адресного поиска берётся из associatedStreet->name:*
  • на домах, включенных в отношение associatedStreet, отсутствуют любые addr:*, кроме addr:housenumber
  • название населенного пункта берётся из окружающего полигона place->name:*
  • название района district->name:* берётся по геометрическому вхождению
  • название области (region->name:) и страны (country->name:) - непонятно, судя по всему задаётся вручную при нарезке карты. надо проверять

Схема у них работает.

Вижу следующие проблемы

  1. Как написал выше, надо проверять как задается название области.
  2. По-любому будет мешанина из associatedStreet и привычными адресными данными, вносимими либо новичками, либо принципиальными противниками усложнения адресного поиска. Как следствие в поиске обязательно будут появляться двойные населенные пункты, двойные улицы (с разным набором домов) и т.д.
  3. Как следствие п.2 адресация никогда не будет правильной на 100%, а при пропадании интереса у активистов адресация протухнет ((

Но на сегодня это единственный уже реализованный и проверенный способ многоязычной адресации.
ИМО начать с associatedStreet, затем поиграть настройками osm2mp для каждого языка отдельно, установить приоритет названий, например

  • для казахского языка [name:kk name name:ru]
  • для русского языка [name:ru name name:kk]
  • для английского [name:en int_name name name:kk name:ru] с включенным транслитом

Настройки для osm2mp живут тут

Всё что не поддерживается osm2mp де факто непригодно.

(добавлено)
Если прийдем к чему-то полезному, надо пригласить остальных маперов и сделать страничку с итогами. Для потомков ))

Опыт по Узбекистану показывает, что без addr:street= в Maps.Me, дома в адресный поиск не попадают. Всегда вставляю из name улицы, по которой адресуется дом.
И еще, для домов которые адресуются по микрорайонам используем отношение associatedStreet, а для домов адресуемых по улицам отношение street, такое разделение мне кажется удобным.

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

PS: проблема, скоро станет некому программировать в РУОСМ (с учетом постоянного потока негатива в сторону разработчиков), все уже наигрались и ушли в другие области.

del