Ужасы адресации в Украине

Печально.
Надо бы объяснить товарищу, что он в Украине живёт, а не в России.
И что для русских названий есть name:ru.
И что нужно улицы задавать релейшенами. Тогда при конвертации не сломается адресный поиск на любом языке.

http://forum.openstreetmap.org/viewtopic.php?pid=297759#p297759
надеюсь проблем не будет

Ну, я вроде исправил этот русофильский вандализм. Но надо что-то придумать, чтобы такое не повторялось.

dimonster
Что тут придумывать. Я сейчас просмотрю и поисправляю ошибки адресации (а их там прилично, с парой простеньких проверяющих стилей в Josm куча красных пятен). С полным переходом на associatedStreet.
Тогда аргумент Cepera1575 отпадет.

PS Вы кстати невнимательно прошлись. Много пропусков. Много не включенных в отношения домов. Есть и места где way “улица” а relation “вулиця” и тд.
Именно такое качество редактирования и дает возможность прикрываться “проблемами адресации”

Виноват :frowning: Был рассержен. Да и так много исправлять пришлось. Вместо того, чтобы заняться чем-то более приятным.

dimonster
Попробую выловить всех блох и посмотрим. :slight_smile:

Я тут подумал…
Может, в русской ветке форума и в русской статье вики про адресацию расписать подробно. (Выложу, когда обсудим все детали).
Типа так:

Преамбула:
В Украине, как и в других бывших республиках СССР, есть много народу, которые хотят иметь карты на родном языке, и много другого народа, которые хотят карты на русском языке. Поэтому приходится указывать для каждой улицы, населённого пункта, района, области и всяких там POI сразу несколько вариантов названия на разных языках. Использовать транслитерацию названий не получается. Пример: “Радянська вулиця - Советская улица”, “Квітковий бульвар - Цветочный бульвар”.

При этом нужно, чтобы:

  1. Система адресации нормально работала на любом языке. Чтобы не было на карте “Социалистическая улица”, а в базе адресного поиске она же “Соціалістична вулиця”, причём домики привязаны непонятно к какой из “улиц”.

  2. Человек, который хочет иметь карту на нужном ему языке, мог просто указать язык в параметрах конвертации, и не иметь потом проблем с адресным поиском

Поэтому практически выведены такие правила адресации:

Тегирование домиков:

  1. теги addr:country, addr:city, addr:street, addr:region, addr:district и прочие addr:чегототам на домах НЕ ИСПОЛЬЗУЮТСЯ! Кроме addr:housenumber (или addr:housename, но он реально нигде не нужен)
    Номера домов с буквами указываем без пробелов и дефисов. Буквы пишем в нижнем регистре кириллицей.

Например,

addr:housenumber=12а
  1. привязывание домиков к улицам, (а при адресации по микрорайонам - к микрорайонам) делается с помощью релейшенов (отношений) типа associatedStreet. (см. ниже)
  2. остальные теги домиков пишем как обычно (building=yes или что-то иное, этажность, amenity и др.)
  3. если один домик официально имеет несколько адресов, например, находится на пересечении улиц Иванова и Петрова и имеет два адреса: “Иванова улица, 1” и “Петрова улица, 14”, то на контуре домика пишем тот номер дома по тому адресу, который используется чаще. Потом ставим внутри контура точку, пишем на ней building=yes и пишем номер дома по второму адресу.
    Затем контур дома включаем в отношение для улицы Иванова, а точку с номером включаем в отношение для улицы Петрова.
    Получаем:
    -Полигон дома с тегами building=yes, addr:housenumber=1, включен в отношение улицы Иванова
    -Точку с тегами building=yes, addr:housenumber=14, включен в отношение улицы Петрова
    (надо уточнить, нужно ли на точку ставить building=yes. По логике, не нужно, но надо чтобы конвертер это понимал)
  4. Если здание выстроено замкнутым кольцом, то его рисуем двумя линиями: внешний контур и внутренний контур. После чего выделяем оба контура и создаём мультиполигон (роль inner для внутреннего контура, роль outer для внешнего контура). В тегах мультиполигона пишем building=yes (или apartments, house или что там ещё), addr:housenumber=…, amenity=…. и др.
    Потом мультиполигон здания включаем в отношение соответствующей улицы.
  5. если один физический домик поделён на два логических домика с разными номерами, то рисуем это чудо как два домика с разными номерами. Можно контуры этих домиков слепить вместе. Пример: Харьков, Социалистическая улица, 68 и его “сиамский близнец” 68А.
  6. если рядом с домом имеется отдельно стоящий магазин или киоск с тем же номером, то (… пока не знаю как обозначить. Обсуждаем…)
    Пример: Харьков, Полтавский Шлях, 148/2 (жилой дом и магазинчик недалеко от этого дома у входа в метро).

– Вопрос: Почему нельзя поставить два номера через дробь на контур дома и включить дом в два отношения?
– Ответ: Потому что тогда непонятно к какой улице относится какой номер дома.

– Вопрос: А почему так получается, что для одного домика нужно два объекта - контур и точка. Дом-то один.
– Ответ: Дом один, а адресов два. В реальности само наличие двойных (тройных, четверных) адресов - это извращение и маразм. Нечто вроде одного человека с двумя паспортами на разные имена и фамилии. Поэтому и в OSM это явление отображается извращёнными средствами и кажется маразмом.

Тегирование подъездов в многоэтажках

Актуально для домов с нестандартной нумерацией подъездов (справа налево), с нестандартным расположением подъездов (с разных сторон дома), для домов, где проехать к разным подъездам нужно с разных улиц (бывает, что проезд перед домом перегорожен шлагбаумом или бетонными блоками, чтобы не было сквозного проезда).

  1. на линии контура дома ставим точку в том месте, где расположен вход в подъезд
  2. на эту точку ставим теги entrance=yes, ref= номер подъезда (1,2,3 и т.д.) Например, ref=1

Конвертер osm2mp пока не поддерживает адресацию подъездов, но Liosha обещал добавить такую возможность.

Тегирование линий улиц

  1. Линии улицы подписываем по названию, используя теги name, name:ru, name:uk и другие name:xx
  2. В теге name пишем название улицы на украинском языке (кроме Крыма - там отдельный разговор, но в принципе, тоже на украинском).
  3. В тегах name:ru, name:uk и прочих name:xx пишем название улицы соответственно на русском, украинском и xx-ском языках
  4. Название улицы на английском языке (name:en), если оно получено простой транскрипцией, можете не писать. Его потом автоматически проставит робот “_sevbot”. (Вопрос про робота спорный. Пожалуй, желательно, чтобы название на “таком-то” языке писал человек-носитель этого языка)
  5. Статусную часть названия (слова вулиця, улица, Street, провулок, переулок, Lane и т.д.) пишем обязательно, указываем полностью, без сокращений и в конце названия.

Например:

name=Радянська вулиця
name:ru=Советская улица
name:uk=Радянська вулиця

Учтите, что для многих населённых пунктов существуют официальные перечни названий улиц на украинском и на русском языке. Желательно сверяться с ними.

– Вопрос: Почему не “ул. Советская” или “Советская ул.”?
– Ответ: Для однообразия. Это важно для компьютера. И так меньше ошибок.

– Вопрос: Почему надо указывать одно и то же название и в name, и в name:uk ?
– Ответ: Чтобы после “языковых войн” можно было бы всё-таки получить из базы название на украинском языке. Впрочем, в тех местах, где “войн правок” не происходит, можно ограничится украинским названием в name.

– Вопрос: А если я не знаю украинского названия?
– Ответ: Не знаешь - не пиши. Будет улица без тега name. Либо спроси на форуме. Либо узнай из официальных документов.

– Вопрос: А я хочу видеть на карте названия на русском языке. А на osm.org выдаёт украинские! Что делать?
– Ответ: Используйте рендер www.toolserver.org. Например, на http://openstreetmap.org.ua/ мы сделали для выбора языка кнопки name:uk, name:ru. Или ждите, когда подобный инструмент появится на главной странице osm.org (насколько я знаю, работы по этой теме ведутся).

Привязка домиков к улицам (или микрорайонам) с помощью релейшенов (отношений):

  1. выбираем мышкой все линии с тегом highway, относящиеся к данной улице, а также все домики, относящиеся к данной улице
  2. создаём отношение
    В тегах отношения (вверху) указываем тип type=associatedStreet (можно использовать и тип street, но желательно, чтобы в пределах одного населённого пункта использовался только один тип использовать тип street не рекомендуется).
    В тегах отношения указываем названия улиц на разных языках. Так же, как это делали на линиях улиц.
name=Радянська вулиця
name:ru=Советская улица
name:uk=Радянська вулиця

Добавляем в отношение участников (выбранные нами линии улицы и домики).
После добавления прописываем для каждого участника отношения его роли.
Для линии улицы пишем роль street, а для домика роль house.

Если домики адресуются не по улицам (“Советская улица, 72”) а по микрорайонам ("Юбилейный микрорайон, 72), то в тегах отношения пишем названия микрорайона на разных языках.

name=Ювілейний мікрорайон
name:ru=Юбилейный микрорайон
name:uk=Ювілейний мікрорайон

При адресации по микрорайонам в релейшене отсутствуют учасники с ролью street. JOSM на это ругается, но ничего не поделать, пусть ругается.
Учтите, что в программе СитиГид адресация по микрорайонам всё равно не поддерживается. (уже вроде поддерживается)
Если вы, я надеюсь, используете редактор JOSM, то рекомендую установить плагин для работы с отношениями RelationToolbox.

  1. Если в населённом пункте имеются улицы - “однофамильцы” в разных районах, то в теги отношений для таких улиц добавляем тег
    addr:suburb с названием района города, в котором расположена эта улица. Не забудьте обозначить сам район точкой или полигоном с тегом place=suburb и названиями (name, name:ru, …).

  2. для одной улицы (микрорайона) создаём только одно отношение. Даже если улица имеет разрывы или состоит из нескольких линий.
    Если кто создал два отношения для одной и той же улицы, то надо убедиться, что это одна и та же улица, а не разные одноимённые улицы в разных районах, после чего выделить всех членов второго отношения, добавить их в первое, не допуская дубли, после чего второе отношение удалить. Потом выделить всех членов первого отношения и проверить правильность.

– Вопрос: А зачем названия прописывать дважды: сначала на линиях улиц, а потом в релейшене?
– Ответ: Потому что конвертер не хочет брать названия улиц из тегов линий улиц. Поэтому названия на линиях улиц пишутся для того, чтобы их было видно на карте, а названия в тегах релейшена пишутся для базы адресного поиска.

– Вопрос: А нельзя ли написать на домике addr:street=Радянська вулиця, на линиях улицы написать name=Радянська вулиця, name:ru=Советская улица. А потом заставить конвертер искать улицу с названием “Радянська вулиця”, чтобы взять с неё русскоязычное название?
– Ответ: Нельзя! Конвертер этого не умеет и не будет. Все вопросы - к Liosha.

– Вопрос: А можно использовать теги типа addr:street:ru
– Ответ: Нет. Во-первых, это неудобно. Во-вторых, вызовет кучу возможных ошибок. Например, если на домике забыли написать название улицы на каком-то языке, то при создании карты на этом языке он выпадет из поиска.

– Вопрос: А почему не рекомендуется тип street?
– Ответ: Потому что 1) street не поддерживается системой nominatim 2)для однообразия и уменьшения путаницы, когда для одной и той же улицы вдруг окажется два релейшена разных типов 3) в плагине RelationToolbox в JOSM работать с associatedStreet удобнее (есть автозаполнялка ролей и name, правда name:ru придётся вручную прописать).

Привязка улицы к населённому пункту

  1. никаких тегов для привязки улицы, дома или микрорайона к городу (деревне) дописывать НЕ НУЖНО.
    Необходимо и достаточно, чтобы линии улицы и все домики находились целиком ВНУТРИ границы населённого пункта.

– Вопрос:А если укажу?
– Ответ: Тогда в базе адресного поиска может появиться два города. Причём все дома будут в одном городе, а ваш домик в другом.

Тегирование населённых пунктов и привязка улиц к населённым пунктам:

  1. населённый пункт обозначается точкой в условном центре населённого пункта, а также границой территории населённого пункта.
    При наличии в населённом пункте именованых улиц границу рисовать обязательно!
  2. точка-центр и граница (помимо прочих тегов) должны иметь теги place и нзвания на разных языках
    Например,
place=town
name=Іванівка
name:ru=Ивановка
name:uk=Іванівка
  1. Дописывать к названию статусную часть (слова “деревня”, “село”, “город”, с.м.т и т.д) не нужно.
    В виде исключения допускается дописать статусную часть в случае, если имеется два населённых пункта в одном районе, но один из них село, а другой посёлок, и по другому их не различить
    Например, в Харьковской области почти рядом есть две Одноробовки - село и посёлок:
place=village
name=Одноробівка
name:ru=Одноробовка
name:uk=Одноробовка
place=village
name=Одноробівка селище
name:ru=Одноробовка посёлок
name:uk=Одноробовка селище
  1. Если населённый пункт имеет “однофамильца” в другом районе, то можно в тегах обоим указать район (на украинском языке)
place=town
name=Борова
name:ru=Боровая
name:uk=Борова
addr:district=Борівський район

place=town
name=Борова
name:ru=Боровая
name:uk=Борова
addr:district=Зміївський район

(в будущих версиях В новой версии конвертора osm2mp планируется действует автоматическая привязка населённых пунктов к районам. Тогда Теперь указывание addr:district станет ненужным уже не требуется)

  1. Если населённый пункт имеет “однофамильца” в том же районе, его нужно привязать к территории местного совета (городского совета, поселкового совета, сельского совета).
    Тут пока есть два варианта:
    а) временный, но не очень правильный
    На точке и на границе населённого понкта указать принадллежность к местному совету, например addr:subdistrict=Козіївська сільська рада
    б) правильный, но пока трудно выполнимый
    Обозначить границы территории местного совета, указать на отношении границы теги boundary=administrative, admin_level=8, name=Козіївська сільська рада, name:ru=Козиевский сельский совет. Убедиться, что территория населённого пункта целиком попадает в эти границы.

– Вопрос:А конвертер osm2mp это понимает?
– Ответ: Пока не знаю, надо проверить.

– Вопрос:А как узнать, что у населённого пункта есть “однофамильцы”?
– Ответ: После конвертации “польский” формат откройте файл карты области в GPSmapedit, запустите проверку карты. В списке ошибок увидите ошибки типа “Более чем один населённый пункт проиндексирован как “Ивановка”” со ссылками на эти населённые пункты.

– Вопрос:А как найти населённый пункт, который я вижу в GPSmapedit, на карте OSM?
– Ответ: В GPSmapedit щёлкните правой кнопкой мыши на объекте, выберите “Свойства” - “Комментарий”. В комментариях будет указан номер объекта по базе данных OSM. Откройте JOSM и загрузите объект с этим номером, а потом и прилегающую к нему часть карты.

Привязка населённых пунктов к области

Не требуется. Потому что:

  1. Обычно карта Украины нарезается по областям. И при нарезке название каждой области задаётся вручную.
  2. Конвертор osm2mp привязку районов и городов к области выполняет автоматически, если город или район геометрически находится внутри границ области.

dimonster
О. Подробно, доступно и поясняются многие неочевидности. ИМХО то что нужно. :slight_smile:
Правда сейчас конечно же придет _sev и скажет что

не нужно и бессмысленно :smiley:

буду первым, мультиязычные теги в отношениях приоритетней, нужней и полезней…

dimonster,
гарно розписано, але є один важливий недолік - ви популяризуєте маппінг під osm2mp, а одне з основних правил OSM “не мапити під конкретне застосування(мапнік, неідеальні валідатори, неідеальні конвертори)”.
Вам уже казали не раз: “не подобається osm2mp - використовуйте власний, пропатчений osm2mp, викладайте вигрузки на радість всім”.

addr:housename - в Україні не повинен використовуватися взагалі, це британський тег.

подвійні адреси - не маразм. Для деяких будинків, які мають входи з взаємноперпендикулярних вулиць, дві адреси дають можливість точніше вказати де шукати необхідний вхід.

Ось це дійсно маразм, який давно був прийнятий в UA-OSM через пропозал.
Значно краще - так як в RU-OSM, з природнім порядком слів. Кому потрібна одноманітність міг би на рівні конвертора зміщувати “вулиця” на початок/кінець назви кому як треба.
Сподіваюсь, що колись в UA-OSM з’явиться критична кількість маперів яким сьогоднішній стиль утворення назви також здається хибним.

Що значить “и не будет”? Та допишіть кілька рядків в той конвертор і все вам буде. На nadoloni.com будинки зв’язані з вулицями і через зв’язки, і по addr:street. Якщо osm2mp не вміє розпізнавати прив’язку по addr:street то це проблема osm2mp, а не даних.

На цьому можна було зупинитись, немає ніяких виключень. Не потрібно дописувати в назву населених пунктів те, що не є назвою.

а які є інші способи конвертації osm-navitel, osm-garmin, osm-7ways, osm-CityGuide ???

Згоден. Хіба що у якомусь задрипаному хуторі, де будиночки-мазанки не мають номерів. Але я такого ще не бачив. Цікаво, хтось бачив будинок (житловий) без номера?

Не згоден. Для цього є нумерація під’їздів. Обробку якої, до речі, Liosha обіцяв зробити.

А який порядок слів є природнім? Де слід писати статусну частину? Чи слід скорочувати “вулиця - вул.”? Як писати “Заречная улица” або “улица Заречная”. Чому москалі пишуть “Площадь Свердлова” зі статусною частиную спереду, а “Красная площадь” зі статусною частиною ззаду?
Ще й можуть виникати помилки з адресацією, коли десь прописано “вулиця Іванова”, в іншому місці “вул. Іванова”, "а десь на будиночку “Іванова вул.”.

Та не знаю я той перл настільки, щоби перекроїти конвертер. До того ж, Liosha просто відкинув наш патч просто тому що він йому не сподобався.

Ні, це проблема усіх.

А що робити з селом Одноробівкою та селищем Одноробівкою?

1)OSM - це не тільки навігатори.
2)Якщо конвертори під навігатори не вміють правильно інтерпретувати osm-дані - то це проблема конверторів, а не даних.

Не плутайте нумерацію під’їздів і адресацію під’їздів
http://forum.openstreetmap.org/viewtopic.php?pid=286989#p286989

Природній порядок слів:

  • спочатку прикметник, потім іменник: Заречная улица, Красная площадь.
  • спочатку іменник, потім додаток: вулиця Іванова.

Так і не треба тоді впарювати Льоші свій патч, якщо він йому не потрібен, користуйтеся патчем на своєму власному комп’ютері.
Проблеми osm2mp - це проблеми osm2mp і нічиї інші. olehz видуману вами “проблему” привязки по addr:street успішно вирішив для nadoloni.com.

З Одноробівкою нічого не робити.
Так само як нічого не робити з селами Миколаївка, яких три в Красноармійському районі Донецької області і три в Лозівському районі Харківської області.
http://uk.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D1%97%D0%B2%D0%BA%D0%B0
Чи з селами Петрівське, яких три в Кагарлицькому районі Київської області.
http://uk.wikipedia.org/wiki/%D0%9F%D0%B5%D1%82%D1%80%D1%96%D0%B2%D1%81%D1%8C%D0%BA%D0%B5
Пошукайте в вікіпедії ще “ТАРАСІВКА” “МАР’ЇВКА” “ЛІСОВЕ” “ЖОВТНЕВЕ” “МИКОЛАЇВКА” “РАДГОСПНЕ” “МАР’ЇВКА”

Це проблема стосується всіх. Нащо створювати карту, яку потім неможна нормально застосовувати?
Ось, наприклад, людина малює карту, і хоче мати її в своєму навігаторі. Дізнається, що хтось вже конвертує карти. Качає готову карту, закидує у навігатор і отримує фігню у адресному пошуку. Це її не влаштовує.
Людина звертається до господаря сервера з картами. Той “переводить стрілки” на автора конвертера Liosha. У свою чергу Liosha “переводить стріки” на “неправильність” системи адресації. Людина починає змінювати дані в OSM під льошин конвертор, отримуючи матюки від інших учасників OSM та починаючи війни за addr:street.
Потім людина довго читає форуми, вікі, врешті качає вивантажені дані з гіслаба, встановлює Перл, осмозіс, конвертор osm2mp. Потім, чортихаючись, встановлює додаткові перлові пакети, частину з котрих треба встановлювати вручну. Потім, перечитуючи купу інструкцій, які вже можуть бути застарілими, якось налагоджує роботу осмозіса та конвертера. І все одно отримує якусь фігню. І посилає всі ті конвертори, карти та OSM під три чорти.

І шо? І де я можу скачати карти під Навітел з нормальним адресним пошуком?

А як їх розрізняти? Як я можу знати, що то три різні села, а не одне, поділене на три частини?
А як робити карти для навігаторів?

dudka
Ни шагу назад, ни пяди земли врагу, ни одной уступки софтописателям?

Нет. На данный момент это проблема всех, и моя и ваша.
Картографическая база данных без возможности получить из нее нормальную функциональную карту просто не нужна. И на данный момент это более чем справедливо для OSM Украины.
И вообще вот возьмите и напишите свой конвертер с шахматами и поэтессами, тогда все проблемы сразу и отпадут.

Це ви про що? Радий буду допомогти софтописателям якщо такі з’являться.
Клюве в моїй думці: не видумуйте нові теги на заміну існуючим, не видумуйте нові схеми тегування на заміну існуючим.

Які дані вам потрібно дістати з OSM? Там все є. Всі існуючі схеми тегування зрозумілі і повнофункціональні. Якщо liosha не хоче їх підтримувати - зробіть це ви.

І я про це кажу. В OSM роботу робить той кому це потрібно. Потрібна підтримка зв’язків? Дописуйте. Потрібна підтримка перекладів addr:street->name->name:ru? Дописуйте. Віддавайте свої результати тим хто робить вигрузки, вкажіть що дороблено до osm2mp чи будь-якого іншого конвертора. Якщо ваша конвертація виявиться якіснішою - нею будуть користуватися.

Якщо не можете - значить ще ніхто не написав конвертор. Якщо ви перший кому потрібні якісні карти під Навітел - вчіть перл і дописуйте osm2mp.

Дискусія трохи відклонилась від теми «Чи дописувати у російськомовний розділ вікі?»

Можна дописати але у розділ «Особенности адресации в Украине»

І заодно поправити українську вікі.

dudka

Это я про то, что прописать все name в каждый way улицы не вызывает вопросов, а дописать их же еще и в relation прямо таки принципиальный отпор.

Если старая схема не покрывает все проблемы, почему бы её не модифицировать? Кстати схема с assr:place котору мы здесь недавно обсуждали это как раз и есть выдумывание нового велоситпеда-костыля на замену существующему.

В данный момент я так понял liosha хочет брать i18n информацию из relation. Ну а почему бы и нет? Это хороший выход без неоднозначностей алгоритма, совместимый с рядом случаев “странной адресации” без дополнительных велосипедов типа addr:place. Я его могу отлично понять и вообще говоря если бы писал конвертер поступил бы так же.

Я так и понял что все эти споры ни к чему не приведут, и если я хочу для всех карту Украины с адресным поиском не только на украинском языке, то нужно просто взять и самому про-i18n-энить все street/associatedStreet relation.
Надеюсь вы не станете эти теги удалять просто из принципа?

Ага. А в результаті у карті “косяки” з адресним пошуком та назвами.
Це вже не кажучи про тегування доріг, яке не всі зрозуміло, суперечки щодо natural=wood, landuse-forest, building=entrance, entrance=yes.

І що? І як? А на планеті Титан вся атмосфера з метанового газу. Але чомусь ніхто його звідти не може дістати.

Дописували вже. Liosha відмовився включати той патч до конвертора.

І тоді буде десяток конверторів, і у кожному свої “косяки” та свої правила тегування.
А якщо я не програміст? Мені сидіти без карт та мапити “у прірву”?

Допишемо коли дійдемо згоди.

І взагалі, було б добре, коли людина, яка приходить в OSM, отримувала б певний і точний довідник з тегування, і знала, що всі інші мапери його дотримуються, і якщо тегувати все чітко за правилами, то “на виході” буде правильна карта. А так маємо тегування за прислів’ям “кто в лес, кто по дрова”, головний біль авторів конверторів та “війни правок”.

Я про це не писав. Хочете дублювати інформацію у зв’язку - дублюйте. А до чого призводить дублювання? До неоднозначностей і невідповідностях при опечатках.
Ну і не сподівайтесь, що її будуть дублювати ті хто можуть дістати name:** з ліній.

Замучаєтесь переробляти ті дані що вже проадресовані через addr:street. Тому в усіх конверторах потрібно підтримувати обидві схеми. Або ж написати один конвертор який готуватиме дані в потрібному форматі існуючим конверторам.

Втратите великий відсоток існуючих адресних даних заданих через addr:street.

dudka

Ох. О неоднозначностях говорите вы, тот кто недавно сам вслух пожалел о наличии единой схемы названий улиц. Не обижайтесь но это оксюморон.
Я вот уже приводил пример и даже вроде как ни один раз:
Если брат name/:ru/:en/:etc из веев, то:

  1. Веев может быть много и в некоторых из них могут быть ошибки. Конвертер никак не может понять какой из них правильный. Что можно сделать? Ну если веев >=3 то можно использовать принцип 2 из 3 хорошо. А если их 3 и везде разные или 2 и оба разные? Отсортировать по алфавиту и взять первый? Это приведет к возникновению сложно отслеживаемых ошибок адресного поиска в ряде случаев. Вот это как раз и есть неоднозначность и неустойчивость к ошибкам, другими словами это плохой алгоритм. Если же место откуда берется name одно, то таких проблем нет и даже если оно задано с ошибкой такую ошибку найти куда как легче.
  2. Места где адреса заданы не по улице а по территории. Тут просто нет вея с данными name. Откуда нам брать name/:ru:/en/:etc ? Из велосипеда addr:place? Зачем если есть relation который сам может содержать всю потребную информацию? И что делать с интернационализацией? Опять плодить addr:place/:ru/:en:/:uk/:etc?
  3. Вообще говоря логично было бы хранить название улицы только в одном месте. В relation и не задавать их даже на веях. Вот тут и не будет никаких лишних дублирований, ошибок и прочего.

Я надеюсь на правильное понимание моей позиции: дело не только в том что сейчас OSM Украины невозможно нормально использовать на языках отличных от украинского, а и в том что схема адресации по тегам name веев улиц попросту хуже/костыльнее/неустойчивее чем схема адресации по name relation. Если вы радеете за улучшение базы OSM, то не могу понять почему вы против этого?

Это все равно надо будет делать и ведь я замучаюсь. К тому же никто не говорил, что нужно вот прям счаз выкинуть схему с addr:street :slight_smile:

А вообще вы уклонились от ответа на ряд вопросов, давайте я их конкретизирую:

  1. Вы принципиально против дублирования i18n информации из way-ев в relation?
  2. Вы или кто другой станете препятствовать попыткам кого либо массово дописать в street/associatedStreet relation тегов типа name:ru/name:uk/name:en/name:etc ?

dimonster

ППКС