Валідатор назв вулиць

Про перенос спільних тегів з вулиць у відношення я б проголосував усіма кінцівками за.
Ще відколи почав мапити, дуже здивували подвійні стандарти: в одній і тій же OSM-wiki пишуть в одному місці що всі спільні теги треба виносити у відношення, але тут же для вулиць роблять виняток. Непослідовно.
Перенос тегів на відношення був би логічним і по значущості був би приблизно рівним переходу на семантичну розмітку в HTML.

АЛЕ
здається мені, що не все так просто і що не все зводиться до простого css-фікса. Наведу приклад для роздумів.

Вей 89546832 входить до трьох відношень:

Припустимо, що ми залишаємо голі веї з самими лише фізичними характеристиками - покриття, кількість смуг, і т.п.
Відношення “вулиця” отримує name, name:ru, name:en і т.д.
Добре, тоді за логікою ми повинні позабирати з веїв і попереносити теги ref - в своє відношення, а int_ref - в своє. Тому що відношення “вулиця” має силу лише в межах міста і не пов’язане з відношеннями міжнародних і європейських маршрутів.
База красива - повний порядок і семантика :slight_smile:
Тільки тепер рендер, видобувши з бази цей вей, повинен проаналізувати усі відношення, в які він входить, і спробувати зварити з тих інгредієнтів якусь кашу з прийнятним смаком. Я Mapnik не копав, але не думаю що це тривіальна задача. При цьому не забуваємо, що у кожного з трьох відношень - свій name.

З одного боку начебто позбулися головняка - не треба міняти теги на всіх веях при змінах (ну не знаю, для мене це сумнівно - вам часто доводиться так робити?) А з іншого маємо нові головняки у вигляді армії новачків, які постійно прибувають, креслять шляхи в Potlatch і знати нічого не хочуть про відношення.

Ось така загадка.
Мабуть, це не та задача, яка вирішується одним вольовим рішенням.

Хлопці, це погано, що нема єдиної системи адресації.
Десь прописують всі addr:** теги на кожен будиночок, десь пишуть лише addr:housenumber, addr:street.
Ми тут в Україні поширюємо свій тип релейшенів, у білорусів теж релейшени, але по-своєму.

В результаті проблеми з адресним пошуком, зі створенням карт на інших мовах.
Спочатку ви пишете, що не треба дублювати назви вулиць у тегах релейшенів. Нарешті Larry0ua “допиляв” скріпт конвертора, щоби брати назви вулиць з тегів самих вулиць. А тут знов новина: виявляється назви вулиць слід писати в тегах релейшена.

Чому такий бардак? Що думають у DWG?

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

Насправді все просто. Лінії рендеряться першим шаром. На нього накладається шар з підписами назв вулиць, а вже на нього шар з підписами ref. Який сенс у відображені на мапі name “Автошлях М-03”, “Європейський маршрут E-40” або ж “Київ - Харків”? Тобто проблема вирішується ігноруванням name, які не входять у відношення street|associatedStreet.

Новачки можуть і далі прописувати name. Власне валідатор і писався аби шукати нестиковки у відношеннях з name. Мова йде лише про те, що варто заповнювати name:lang і для відношень. В перспективі можна буде підняти свій красивий рендер, який працюватиме саме на відношеннях.

А на яке відношення ставити тег highway у вищенаведеному прикладі?
Щоб відрендерити лінії першим шаром, його значення повинно бути заздалегідь відоме.
І ref теж повинен про нього знати щоб бути відрендереним в єдиному стилі. Ще й бажано без накладок тим з name, який на street.

На відношення тег highway ставити взагалі непотрібно. Мапнік рендерить надпис name і ref окремо для кожного сегменту highway. Як варіант можно при рендерінгу брати його не з сегментів як є зараз, а з відношеня, от і вся різниця.

у містах може й нема сенсу, а за містом сенс є!

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

Невже значка M-03 недостатньо і треба прописувати “Автошлях М-03”? Я за те аби в name заносити лише назви вулиць. Дублювати ту саму інформацію в ref і name як мінімум нелогічно. Та й судячи з кадастрової мапи, пазл сільрад покриває усю територію країни, так що ділянок за межами НП практично не існує. Якщо АЗС стоїть посеред лісу - це не означає, що у неї немає адреси.

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

Для М-03 достатньо значка. Але можуть бути заміські дороги з власною назвою.

в кадастровій мапі, як виявилося, присутня лажа. Вже зрозуміло, що неможна їй довіряти.

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

і яка ж у неї буде адреса?

Пропатчений конвертор osm2mp не ігнорує назви вулиць у тегах відношення. Зараз логіка роботи така:

  1. перебираємо всіх членів релейшена, шукаємо такий член, який є типом way, має роль street та має назву вулиці певною мовою.
  2. якщо знаходимо такого, беремо назву вулиці з того відрізку вулиці
  3. якщо не знаходимо, то беремо назву вулиці з тегів самого відношення.
  4. якщо на будинку приписано addr:street, назва вулиці береться з addr:street незалежно від того, що прописано у відношенні
    (нажаль, на сьогодні osm2mp чомусь не хоче шукати іншомовні назви вулиці. Якою мовою в addr:street прописано, тією мовою й лишається).

Наприклад? Я особисто вважав, що все обмежується літерними кодами С-22, Т-33, Р-44

Мова йде не про якість даних, а про сам факт відсутності “нічійної землі”.

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

с. Мордор, вулиця Лісова 89д

Ну а яким чином я створю проблеми для вашого конвертора додавши до назв відношень, наприклад, польські назви?

потрібно подружити валідатор з ролями forward та backward у зв’язках транспорту або не вносити їх взагалі.
JOSM в обидвох випадках матюкається, поки.

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

Хоча нещодавно liosha трохи підправив свій конвертор, щоби він переносив назву вулиці з тегів релейшену до addr:street ліній вулиць. Так що цієї проблеми не буде. Однак liosha чомусь не хоче щоби конвертор брав назви вулиці не лише з тегів релейшена, а й з тегів ліній вулиць.
Я йому писав, що в нас по всій Україні в релейшенах вулиць є тільки українські назви. А назви на інших мовах є лише в тегах ліній вулиць.
На що liosha запропонував нам скопіювати ті назви до тегів релейшенів.
Мабуть він з нас знущається :frowning:

додав редагування тегів suburb + візуалізацію пробілів в нумерації будинків

чи можна вивести ще одну інформколонку з номером зв’язку у вулицях, маршрутах, і релейшинах?
Але якщо плануєш зробити такі ж посилання, як зараз в релейшинах, то не варто просто номери.
До речі, Josm не перехоплює посилання. Фаєрфокс і Хром пробував.

мега!

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

І ще глянь будь ласка на
http://www.openstreetmap.org/api/0.6/way/108194446/history
http://www.openstreetmap.org/browse/changeset/13633403
Зміна назви через nadoloni.com могла призвести до видалення в тезі layer?

проверил два варианта с layer=1 и layer=0, при layer=0 - тег обнуляется…
http://www.openstreetmap.org/browse/way/107438696/history
http://www.openstreetmap.org/browse/way/107438695/history

Не могла

Зробив.

Плюс пофіксав ще кілька багів, додав верифікацію дублікатів в нумерації будинків, список адмінкордонів і точок НП.

Relations поломався. Не показує ім’я, якщо не було додано suburb.

поправив :expressionless:

Дякую.
Повиправляв київські зв’язки. Не шукайте там помилок до наступного проходу валідатора:)
Які є варіанти з мостами включеними у street-зв’язки? Наприклад Русанівський міст на Броварському проспекті.
Думаю, що замаплено все правильно, а валідатор показує помилку(зрозуміло чому). Може ігнорувати лінії з закінченням " міст"?