Харьков и область (обсуждение)

Кстати, VF на днях выпустил новую версию своей карты. И на пробки.нет уже новая версия он-лайн карты. Там часть ошибок уже исправлена.
В частности, дом по пер. Усовскому, 30 уже на своём месте. Правда, соседние дома по Верхнегиевской как-то странно обозначены. Надо будет ещё раз пройтись там, повнимательнее посмотреть.

Замутил. См. Улицы Харькова, колонка “Пробіли”.

Братва. Сегодня обнаружил непонятную вещь: у Харьковской области двойые границы.

Раз: http://www.openstreetmap.org/browse/way/30564408
Два: http://www.openstreetmap.org/browse/way/30564473

Народ, как поправить? И надо ли исправлять? А то ДЖОСМ ругается.

http://www.openstreetmap.org/browse/way/30564408 треба видалити, це якись невалідний шматок кордону, який не включений в мультиполігон області, та і в будь-який інший також.

Ну тоді може завтра увечорі займуся подальшою перевіркою кордонів.

Ще одне питання по Харкову.
Є дві вулиці Кірова. Одна у Київському районі. Інша на межі Червонозаводського та Комінтернівського районів.
Оскільки ці різні вулиці мають однакові назви, то щоби їх розрізняти, їх треба прив’язати до відповідних районів за допомогою addr:suburb
З першою вулицею ясно. Пишемо addr:suburb = Київський район
А що писати у addr:suburb для другої вулиці?

  • прив’язати до якогось одного району?
  • прив’язати частину будинків та ліній до одного району, а решту - до іншого?
  • прив’язати до “народної” назви місцевості (район Основа, якщо я не помиляюся)?
  • не прив’язувати?

Я ж попереджав, що така ситуація може виникнути, наводив приклад Київа. І ми ніби домовились замість адмін-районів використовувати місцевості (мікрорайони). В інших містах використані саме мікрорайони, але ви чомусь вперто калькуєте за тревеловськими мапами і потім дивуєтесь проблемам. І як ви плануєте забезпечити багатомоність, якщо адмінрайони це адміністративні полігони. Як вибрати всі адмінрайони міста, якщо ті можуть вилазити за межі міста і мають різний admin_level? У випадку використання точок suburb ця проблема зникає. Вибираємо усі точки субурб в межах міста і співставляємо name з addr:suburb, звідки і отримуємо переклади уточненої локації вулиці.

Зверніть увагу на це: Місцевості Харкова

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

Ну, можна й місцевості. Хоча, по перше, теоретично вулиця може проходити через різні місцевості. І виникне така сама проблема.
По друге, хіба місцевість не повинна мати межі? Межі адмін. районів можна найти у офіційних документах, а де я знайду межі місцевості?
Чи там достатньо лише точки з назвою?

І ще я не зрозумів про прив’язування будинків. Як правильно? Куди писати addr:suburb, щоби його конвертори зрозуміли?

Теоретично може. Проте, така ситуація маловірогідна. Зазвичай одноіменні вулиці - це вулиці колишніх окремих сіл, що були включені у склад міста. Тому якщо є 2 вулиці, одна з яких знаходиться в центрі, а інша десь в межах колишнього села, то addr:suburb є сенс виставляти лише для другої. А центральну не чіпати.

Одноіменні вулиці - це історичний процес інтеграції. Отже достатньо вказати назву історичного села, яке вже давно не має власних меж, але власну назву зберігло. Такі утворення не мають чітких меж і/або перетинатися одне з одним, тому найкращим способом позначення таких об’єктів є просто простановка на карті точки з тегами place=suburb, name=X, name:ru, name:en (звідси будемо брати назви для перекладу назв уточнених вулиць). На wikimapia, на відміну від ОСМ, для Харкова місцевості якось проставили. Підозрюю, що приблизно, тому не варто на тому акцентувати увагу, якщо ми говоримо саме про вулиці, то нас їх геометрія і не має дуже цікавити - мета розділити одноіменні вулиці.

addr:suburb прописати лише для сегментів одноіменних вулиць, що не в центрі. В Харкові всі ж вулиці через відношення, отже на будинки нічого проставляти не треба.

Я не врахував існування змішаних схем адресації. Тому має бути трішки не так. Є два варіанти:

  1. Якщо вулиця задана через відношення. addr:suburb треба проставити на всі сегменти + (1.а АБО 1.б)
    1.а addr:suburb на саме відношення
    1.б задати name як CONCAT(name вулиці, ’ ', name suburb)

треба обрати один з варіантів 1.а або 1.б аби був єдиний стандарт для усієї країни.

  1. Якщо вулиця не задана через відношення. addr:suburb треба проставити на всі сегменти + addr:suburb на усі будинки.

А чому у варіанті “через відношення” недостатньо addr:suburb прописати тільки на відношення?
Пропоную для таких випадків(кількаразового використання однієї назви), а їх не надто багато, використовувати тільки схему 1.

Судячи з не раз згадуваного реєстру урбанонімів, та що в Київському районі називається Кіровська/Кировская

Так, але теоретично, згодом вулицю можуть продовжити, й вона “заповзе” на територію іншої “місцевості”.

То як треба робити?

Поставити в центрі “місцевості” точку з place=suburb, name=Основа, name:ru, name:en.
Якщо вулиця задана релейшеном, то прописати в тегах релейшена addr:suburb=Основа

Якщо нема релейшена (хоча по Харкову майже всюди релейшени), то addr:suburb=Основа прописуємо до кожного будинку на тій вулиці та до кожного відрізку вулиці.

Так?

Гм. Треба перевірити на місцевості.

У паперовому атласі Спаеро 2006 року та карті тревелЖПС вулиця Кірова
У реєстрі урбанонімів та у схемі вулиць від Спаеро (KharkivStreetsSpaero.osm) вулиця Кіровська.

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

Особисто мені достатньо. Просто за логіою, якщо name задаємо в сегментах, то варто б інші теги туди ж пхати. Та й невідомо як поведуть себе сторонні аплікухи (наприклад nominatim) - треба це питання дослідити.

давайте решать проблемы по мере поступления

А хіба Nominatim використовує addr:suburb? Мені здається, що він просто показує назву найближчого place=suburb, або назву suburb/residential-полігона, що містить будинок.
Судячи з історії змін в wiki, addr:suburb придуманий російською спільнотою.

Крім osm2mp більш не знаю хто використовує addr:suburb.
А osm2mp ніби бере addr:suburb зі звязку
http://forum.openstreetmap.org/viewtopic.php?pid=284664#p284664

Ну і ще я їх використовую. Зараз я вигрібаю усі сегменти вулиць і групую їх по name + suburb. Обмежуватись суто сегментами відношень не хочеться - більша частина сегментів просто не включена у відношення. Тому я і говорю, що нелогічно ставити name на сегменти, а addr:suburb як продовження name, тільки на відношення. Уся логіка ламається. Виходить я можу працювати лише або з сегменти, або лише з відношеннями. Але так як у нас зараз 50/50 і всі сторонні аплікухи заточені на використання name саме з сегментів, вважаю ідею озвучену dudka поганою.

Та й всі “проблемні” вулиці країни на поточний момент заадресовані через addr:suburb саме на сегментах. Вище я пропонував проставляти addr:suburb або ж CONCAT(name вулиці, ’ ', name suburb) лише з метою:

  1. обєдання сегментів (навіть тих, що не потрапили у відношення через неуважність по цим атрибутам)
  2. мати можливість відрізняти відношення по текстовим міткам

Випадки

  • не додав addr:suburb в лінію(в схемі без звязків)
  • не додав лінію в relation у якого є addr:suburb(в схемі з звязками)
    абсолютно ідентичні. В обох випадках будуть роздвоєння вулиць.
    Якщо ставити addr:suburb на дороги - тоді вже треба ставити і на будинки. Адже досить часто будинок має addr:street, але не включений у зв’язок вулиці.

Ситуації ідентичні, але наслідки різні. Основне питання, як вибрати список вулиць міста?

Твій варіант: вигрібаємо всі відношення, а вже з них отримуємо name і suburb. Ця схема вимагає аби кількість відношень = кількості вулиць, чим зараз може похвалитись зовсім мізерна кількість міст країни. + Додаткова проблема: відсутність рендерів, що відображають вулиці на основі відношень і як наслідок неможливість виявлення помилок.

Мій варіант: вигрібаємо усі сегменти і групуємо їх за CONCAT(name вулиці, ’ ', name suburb). Отримуємо в кілька раз більше вулиць, ніж в першому варіанті. + відпадає проблема з затрудненням виявлення помилок.

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

На будинки ставити є сенс лише за умови, що будинок не включений у жодне відношення. Якщо адресація задана через addr:street, то звичайно треба виставити і addr:suburb. У разі використання відношень ця потреба відпадає, адже addr:suburb може бути взятий з самого відношення (варіант А), або ж з першого сегменту вулиці.

Вважаю, що на відношення є сенс вішати тільки теги не повязані з name. Наприклад, якщо у місті 1000 вулиць, а з них через відношення задано лише 700 - нічого страшного, що 300 залишившихся сиротами вулиць не отримають тег wikipedia.

До того ж врахуй, що екс-сільські вулиці зазвичай коротенькі - 1 сегмент (2-3 сегменти максимум). Кількість рухів у редакторі майже однакова для обох варіантів