Позначення адрес в Україні - нові правила (обговорення)

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

Якщо є пропозиція ставити на адреси з площами addr:place замість addr:street, то для кожної площі повинно буди точка або полігон/мультиполігон place=square. То треба як мінімум проговорити, що робити з елементами доріг з назвою “площа/майдан”:

  • Рекомендовано додавати надалі
  • Можна додавати, але загалом це непотрібно
  • Краще не додавати

Є кілька можливих варіантів:

  1. Без мультиполігона. Три будівлі з однаковими теґами addr:housenumber=1 але з різними addr:unit=корпус 1, addr:unit=корпус 2, addr:unit=корпус 3.
  2. З мультиполігоном. Один «основний» обʼєкт з теґом addr:housenumber=1, три «підпорядковані» з різними addr:unit=корпус 1, addr:unit=корпус 2, addr:unit=корпус 3
  3. Теґ addr:housenumber на полігон який позначає територію організації, різні теґи addr:unit=* на різні корпуси.

У першому варіанті основний недолік — дублювання однакових теґів addr:housenumber на трьох будівлях. На це скаржаться валідатори в редакторах і, мабуть, не всі рушії пошуку вміють вирішити такий конфлікт. Проблему повинні вирішувати розробники написанням алгоритму який крім addr:housenumber враховує також різні теґи addr:unit.

У другому варіанті основний недолік — «зайвий» мультиполігон, четверта будівля якої не існує. Невелика перевага — немає проблем з валідаторами бо не дублюється теґ addr:housenumber, працює принцип вкладеності при визначенні адреси.

Третій варіант підходить для організацій де корпуси розташовані на якійсь одній земельній ділянці. Як і в другому випадку також працює принцип вкладеності при визначенні адреси. Недолік — у додатку до Порядку чітко написано що адреса не присвоюється земельним ділянкам. Також підхід не працює для, наприклад, житлових будівель які мають один номер і різне позначення корпусів, але за якими немає організації якій підпорядкована територія. Простіше — немає полігону з name=*, amenity=* на який можна було б «повісити» addr:housenubmer.

Всі три варіанти мають якісь свої недоліки й переваги. Мені більше до вподоби перший.

1 Like

Зараз текст такий:

У випадках, коли частина адреси «назва вулиці» не є лінійним обʼєктом (вулицею, проспектом й т.і), а натомість є назвою місцевості, замість теґа addr:street= використовується теґ addr:place=, до якого вноситься назва місцевості. Використання обох теґів одночасно вважається помилкою. Також назва місцевості зазначається в тезі name= адресного звʼязку. В такому випадку до адресного звʼязку лінійний обʼєкт з теґом highway= не додається через його відсутність.

Наскільки я зрозумів що тут критерій для вибору між addr:place і addr:street не те чи є у складі повної назви родові позначення площа, майдан, мікрорайон, а те чи обʼєкт точковий place=* чи лінійний highway=*. Якщо адресація за точковим обʼєктом — не додавати у звʼязок type=associatedStreet, використовувати addr:place. Якщо за лінійним — додавати в звʼязок type=associatedStreet у ролі street, використовувати теґ addr:street.

Знайшов 2 OpenSource валідатори, які вміють перевіряти дублікати адрес - вбудований в JOSM та osmose

Виявляється в JOSM є 2 варіанти такої валідації - для об’єктів з та без associatedStreet
Зробив простенький експеримент - в порожньому шарі додав вулицю highway=residential, name=Зелена вулиця, 2 однакові близькі точки addr:housenumber=1,addr:street=Зелена вулиця та відповідне associatedStreet. Обидва валідатори дублікатів дали помилку. Потім поставив точкам з адресами addr:unit=корпус 1 та корпус 2. Валідатор без associatedStreet перестав давати помилку. Валідатор з associatedStreet досі дає помилку. Тобто в JOSM просто забули додати цю перевірку в associatedStreet і можна їм створити тікет, щоб вони поправили

Стосовно osmose, подивився, в них не видає помилку коли addr:housenumber однакові, addr:unit різні

Я теж схиляюся до 1-го варіанту, бо варіант 3 порушує рекомендацію, що ми додаємо адреси в першу чергу на будівлі. А варіант 2 порушує принцип One feature, one OSM element - OpenStreetMap Wiki : 1 будівля в базі даних відповідає декільком реальним будівлям

1 Like

Всі три варіанти позначення корпусів є валідими з точки зору One feature, one OSM element - OpenStreetMap Wiki

У вільний час пробую впорядковувати назви вулиць. Опишу тут спостереження щоб не загубилися :slight_smile:

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

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

  • Храмова вулиця — названа на честь храму
  • вулиця Храмова — названа на честь людини з прізвищем Храмов

Спробував вибрати зі словника ВЕСУМ прикметники у називному відмінку та прізвища у родовому відмінку які мають однаковий набір символів. Вийшло 239 власних назв які, теоретично, іноді можуть бути прикметником, іноді — прізвищем:

[яка] вулиця? вулиця [названа на честь пана …]
Абрикосова вулиця вулиця Абрикосова
Адамова вулиця вулиця Адамова
Акулова вулиця вулиця Акулова
Бабакова вулиця вулиця Бабакова
Багрова вулиця вулиця Багрова
Баєва вулиця вулиця Баєва
Базарова вулиця вулиця Базарова
Байдакова вулиця вулиця Байдакова
Баканова вулиця вулиця Баканова
Бакланова вулиця вулиця Бакланова
Бакунова вулиця вулиця Бакунова
Барієва вулиця вулиця Барієва
Баркова вулиця вулиця Баркова
Басова вулиця вулиця Басова
Бахмата вулиця вулиця Бахмата
Безноса вулиця вулиця Безноса
Безрука вулиця вулиця Безрука
Безуха вулиця вулиця Безуха
Бережка вулиця вулиця Бережка
Берка вулиця вулиця Берка
Бичкова вулиця вулиця Бичкова
Білоброва вулиця вулиця Білоброва
Білова вулиця вулиця Білова
Біловуса вулиця вулиця Біловуса
Білозора вулиця вулиця Білозора
Білозуба вулиця вулиця Білозуба
Білонога вулиця вулиця Білонога
Бірюзова вулиця вулиця Бірюзова
Боброва вулиця вулиця Боброва
Богомазова вулиця вулиця Богомазова
Бокова вулиця вулиця Бокова
Борна вулиця вулиця Борна
Бояринова вулиця вулиця Бояринова
Бубликова вулиця вулиця Бубликова
Бубнова вулиця вулиця Бубнова
Бугаєва вулиця вулиця Бугаєва
Бузька вулиця вулиця Бузька
Булатова вулиця вулиця Булатова
Бурдюкова вулиця вулиця Бурдюкова
Бурова вулиця вулиця Бурова
Буряна вулиця вулиця Буряна
Буська вулиця вулиця Буська
Бутова вулиця вулиця Бутова
Василькова вулиця вулиця Василькова
Вдовича вулиця вулиця Вдовича
Виноградова вулиця вулиця Виноградова
Ворона вулиця вулиця Ворона
Воронова вулиця вулиця Воронова
Голуба вулиця вулиця Голуба
Гончарова вулиця вулиця Гончарова
Горбоноса вулиця вулиця Горбоноса
Горлова вулиця вулиця Горлова
Горова вулиця вулиця Горова
Горохова вулиця вулиця Горохова
Горшкова вулиця вулиця Горшкова
Грибова вулиця вулиця Грибова
Громова вулиця вулиця Громова
Гудкова вулиця вулиця Гудкова
Гусакова вулиця вулиця Гусакова
Димова вулиця вулиця Димова
Довгопола вулиця вулиця Довгопола
Донна вулиця вулиця Донна
Драгоманова вулиця вулиця Драгоманова
Дроздова вулиця вулиця Дроздова
Дронова вулиця вулиця Дронова
Дякова вулиця вулиця Дякова
Дятлова вулиця вулиця Дятлова
Дячишина вулиця вулиця Дячишина
Євграфова вулиця вулиця Євграфова
Євдокимова вулиця вулиця Євдокимова
Євстахієва вулиця вулиця Євстахієва
Єгорова вулиця вулиця Єгорова
Єпіфанова вулиця вулиця Єпіфанова
Єрмилова вулиця вулиця Єрмилова
Єрмолаєва вулиця вулиця Єрмолаєва
Єрофеєва вулиця вулиця Єрофеєва
Єфимова вулиця вулиця Єфимова
Єфремова вулиця вулиця Єфремова
Жарова вулиця вулиця Жарова
Жижка вулиця вулиця Жижка
Жирова вулиця вулиця Жирова
Жолобова вулиця вулиця Жолобова
Зайцева вулиця вулиця Зайцева
Зубова вулиця вулиця Зубова
Ібрагімова вулиця вулиця Ібрагімова
Іванова вулиця вулиця Іванова
Ігнатова вулиця вулиця Ігнатова
Ізотова вулиця вулиця Ізотова
Ількова вулиця вулиця Ількова
Іпатова вулиця вулиця Іпатова
Іродова вулиця вулиця Іродова
Ісаєва вулиця вулиця Ісаєва
Ісакова вулиця вулиця Ісакова
Іудина вулиця вулиця Іудина
Кабанова вулиця вулиця Кабанова
Каблукова вулиця вулиця Каблукова
Капустяна вулиця вулиця Капустяна
Кара вулиця вулиця Кара
Качанова вулиця вулиця Качанова
Каштанова вулиця вулиця Каштанова
Кирпоноса вулиця вулиця Кирпоноса
Клейна вулиця вулиця Клейна
Ковалева вулиця вулиця Ковалева
Козакова вулиця вулиця Козакова
Козлова вулиця вулиця Козлова
Кокова вулиця вулиця Кокова
Коломійцева вулиця вулиця Коломійцева
Колоскова вулиця вулиця Колоскова
Колосова вулиця вулиця Колосова
Комарова вулиця вулиця Комарова
Комісарова вулиця вулиця Комісарова
Копилова вулиця вулиця Копилова
Копка вулиця вулиця Копка
Коржова вулиця вулиця Коржова
Коробова вулиця вулиця Коробова
Королькова вулиця вулиця Королькова
Коса вулиця вулиця Коса
Косова вулиця вулиця Косова
Кострова вулиця вулиця Кострова
Котка вулиця вулиця Котка
Кравцева вулиця вулиця Кравцева
Кривобока вулиця вулиця Кривобока
Криволапа вулиця вулиця Криволапа
Кривоноса вулиця вулиця Кривоноса
Криворота вулиця вулиця Криворота
Крилова вулиця вулиця Крилова
Кротова вулиця вулиця Кротова
Крупка вулиця вулиця Крупка
Крюкова вулиця вулиця Крюкова
Куликова вулиця вулиця Куликова
Кураєва вулиця вулиця Кураєва
Куркова вулиця вулиця Куркова
Лаврова вулиця вулиця Лаврова
Лазька вулиця вулиця Лазька
Легкодуха вулиця вулиця Легкодуха
Ликова вулиця вулиця Ликова
Лимонова вулиця вулиця Лимонова
Липка вулиця вулиця Липка
Лобова вулиця вулиця Лобова
Ломова вулиця вулиця Ломова
Луцька вулиця вулиця Луцька
Мазка вулиця вулиця Мазка
Майорова вулиця вулиця Майорова
Малюкова вулиця вулиця Малюкова
Мамонтова вулиця вулиця Мамонтова
Манна вулиця вулиця Манна
Маркова вулиця вулиця Маркова
Матросова вулиця вулиця Матросова
Махова вулиця вулиця Махова
Мельникова вулиця вулиця Мельникова
Мірошникова вулиця вулиця Мірошникова
Міська вулиця вулиця Міська
Міхова вулиця вулиця Міхова
Молотова вулиця вулиця Молотова
Мольна вулиця вулиця Мольна
Морозова вулиця вулиця Морозова
Мулька вулиця вулиця Мулька
Мура вулиця вулиця Мура
Мурашина вулиця вулиця Мурашина
Нещадима вулиця вулиця Нещадима
Носова вулиця вулиця Носова
Однорога вулиця вулиця Однорога
Орлова вулиця вулиця Орлова
Островерха вулиця вулиця Островерха
Пʼятакова вулиця вулиця Пʼятакова
Пальчикова вулиця вулиця Пальчикова
Паніна вулиця вулиця Паніна
Панкова вулиця вулиця Панкова
Панова вулиця вулиця Панова
Пастухова вулиця вулиця Пастухова
Пенькова вулиця вулиця Пенькова
Перова вулиця вулиця Перова
Петрова вулиця вулиця Петрова
Пирогова вулиця вулиця Пирогова
Писарева вулиця вулиця Писарева
Плосконоса вулиця вулиця Плосконоса
Полозова вулиця вулиця Полозова
Померанцева вулиця вулиця Померанцева
Попова вулиця вулиця Попова
Порфірова вулиця вулиця Порфірова
Пояркова вулиця вулиця Пояркова
Пухова вулиця вулиця Пухова
Пучкова вулиця вулиця Пучкова
Ракова вулиця вулиця Ракова
Реброва вулиця вулиця Реброва
Рижикова вулиця вулиця Рижикова
Рижкова вулиця вулиця Рижкова
Рогова вулиця вулиця Рогова
Руська вулиця вулиця Руська
Сабурова вулиця вулиця Сабурова
Свердлова вулиця вулиця Свердлова
Смалька вулиця вулиця Смалька
Смислова вулиця вулиця Смислова
Соколова вулиця вулиця Соколова
Сомова вулиця вулиця Сомова
Сотникова вулиця вулиця Сотникова
Станкова вулиця вулиця Станкова
Сторожка вулиця вулиця Сторожка
Страшка вулиця вулиця Страшка
Суржикова вулиця вулиця Суржикова
Сурикова вулиця вулиця Сурикова
Суслова вулиця вулиця Суслова
Сучкова вулиця вулиця Сучкова
Талькова вулиця вулиця Талькова
Таранова вулиця вулиця Таранова
Татаринова вулиця вулиця Татаринова
Товстонога вулиця вулиця Товстонога
Токарева вулиця вулиця Токарева
Тонковида вулиця вулиця Тонковида
Тонконога вулиця вулиця Тонконога
Тонкошкура вулиця вулиця Тонкошкура
Тупикова вулиця вулиця Тупикова
Тутова вулиця вулиця Тутова
Тягла вулиця вулиця Тягла
Уланова вулиця вулиця Уланова
Формена вулиця вулиця Формена
Франкова вулиця вулиця Франкова
Хвостова вулиця вулиця Хвостова
Хоботова вулиця вулиця Хоботова
Холодова вулиця вулиця Холодова
Храмова вулиця вулиця Храмова
Христова вулиця вулиця Христова
Циганова вулиця вулиця Циганова
Чабанова вулиця вулиця Чабанова
Червова вулиця вулиця Червова
Черепкова вулиця вулиця Черепкова
Чижикова вулиця вулиця Чижикова
Чистова вулиця вулиця Чистова
Читка вулиця вулиця Читка
Чорномаза вулиця вулиця Чорномаза
Чумакова вулиця вулиця Чумакова
Шайтанова вулиця вулиця Шайтанова
Шарова вулиця вулиця Шарова
Шатрова вулиця вулиця Шатрова
Шахова вулиця вулиця Шахова
Шевцева вулиця вулиця Шевцева
Шишкова вулиця вулиця Шишкова
Шляхова вулиця вулиця Шляхова
Шута вулиця вулиця Шута

P. S. Написав про це на вікі. Як на мене буде не зайвим

3 Likes
Базар Базарова вулиця Базаров вулиця Базарова

@darkonus, тут, якщо це прикметник жіночого роду, зазвичай буде «Базарна вулиця» :man_shrugging:.

Так, правильно. Просто цей список я готував не вручну а методом порівняння двох наборів слів зі словника — перерізом множин. Тому дещо зі списку може бути дивним і не зустрічатися насправді, а дещо — бути актуальним. Як от Тупікова вулиця в Лохвиці, яка, за вікіпедією названа на честь генерал-майора В. І. Тупікова.

2 Likes

Моя спроба привести назви вулиць до природного порядку слів. Це таблиця в форматі TSV де в першій колонці стара назва а в другій — змінена за новими рекомендаціями. Переставляв напівавтоматично за суфіксами, іменами, звірянням зі словником. Впевнений, є невелика кількість помилок. Завів репозиторій на гітхабі: GitHub - mellangr/osm_uk_street_names: Normalization of Ukrainian street names from OpenStreetMap

Можна якось візуалізувати на мапі ті назви що потребують змін. Також можу, за бажанням, обережно і з перевіркою перейменувати скриптом Матеуша Конєчного назви вулиць у якійсь громаді/громадах. Якщо потрібно, це можна обʼєднати з перейменуванням/дерусифікацією назв.

Що в таблиці:

Приклад роботи скрипта:

3 Likes

Якось пропустив, що нарощення для дат непотрібне. Можливо варто додати в вікі про це згадку?

2 Likes

Дописав речення:

3 Likes

Вирішив спробувати сил і написати валідатор українських назв вулиць і адрес для JOSM. Поки що перевіряє лише назви, але згодом планую навчити перевіряти й інші адресні теґи.

В останній версії збільшив кількість збігів назв які потребують перестановки родового позначення на початок. Тепер, наприклад, валідатор знаходить і переставляє родове позначення на початок якщо власна назва вулиці закінчується на букву: б, в, г, ґ, д, ж, з, и, і, ї, к, л, м, н, о, п, р, с, т, у, ф, х, ц, ч, ш, ь, ю. Чому? Тому що прикметники ні чоловічого ні жіночого ні середнього роду однини не закінчуються жодною з цих літер.

Також навчив виправляти неправильно записані буквенні нарощення: 2-а → 2-га, 3-я → 3-тя, 1000-а → 1000-на і т. д., поки що лише для чоловічого та жіночого роду.

Також є правило яке міняє латинські символи що схожі на кириличні — на кириличні. Ще у процесі написання правило для замінювання різних апострофів на один.

Щоб встановити, потрібно зайти у налаштування, перевірку даних, правила перевірки теґів. Валідатор ще сирий і може у рідкісних випадках, «зʼїдати» частини назв, міняти теґи місцями. Щоб відловити й виправити можливі баги потрібне тестування, тому прошу допомогти, особливо з результатом натискання кнопки «Виправити».

ezgif.com-gif-maker

image

1 Like

Гарний валідатор. Ідея збирати до купи по назві чудова, не ламається прив’язка вулиці. Зібрав помилкові спрацювання:

Велика вулиця
Весела вулиця
Глибока вулиця
Гірнича вулиця
Далека вулиця
Житній проспект
Жовта вулиця
Золота вулиця
Коротка вулиця
Мальовнича вулиця
Плитовата вулиця
Робітнича вулиця
Садівнича вулиця
Світла вулиця
Середній провулок
Срібляста вулиця
Стара вулиця
Широка вулиця
вулиця Хутір
провулок Пасаж

Дякую за позитивний відгук і тестування! Валідатор спрацював на цих назвах через те що є прізвища в родовому відмінку які мають такі самі закінчення. Наприклад, прикметник «Велика» закінчується на останні чотири букви -лика, і прізвища зі списку також: Балика, Безулика, Бєлика, Бублика, Булика, Бялика, Василика, Волика, Гилика, Голика, Горелика, Гулика, Джулика, Дзюблика, Дишлика, Долика, Дублика і т. д… Те ж саме із іншими прикметниками із цього списку.

Виникає невеличка дилема.

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

  2. Якщо залишити такі закінчення, валідатор буде частіше спрацьовувати помилково але й теоретично, виловлюватиме більше назв які потребують перестановки.

Як на мене, кращий перший варіант. А як на вашу думку?

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

1 Like

Пофіксив, додав правило для пошуку й виправлення теґів addr:housenumber
12а, 12 а, 12 А → 12-А

Ще зручно оглядати обʼєкти вулиці якщо клікнути двічі на групу елементів щоб виділити їх а потім натиснути “3” щоб масштабувати до виділення.

Дуже вдячний за допомогу!

1 Like

@darkonus а можна розширити правило, що замінює латинські символи на кирилицю для addr:housenumber? Наразі по Україні таких елементів більше 200, але вони постійно додаються

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

1 Like

@darkonus помітив проблему з валідатором - якщо в addr:street - латиниця - воно піднімає помилку “Можливі описки”, а при виправленні видаляє addr:street замість виправлення

Була помилка в коді. Кнопка «Виправити» запускала код який аналізував значення теґа addr:street але намагався перезібрати його зі значення теґа name. Виправив, вдячний за підказку!

1 Like