Универсальный валидатор (рутинг, адресация) на базе конвертации в СГ

Они уже замаплены правильно.
А чтобы они искались в ситигиде, нужна дополнительная разработка :smiley:

Раз адрес “поселок Червены Клаштор, д. 93”, на доме должно быть “addr:place=Червены Клаштор + addr:housenumber=93”. Но в СитиГИДе пока такие дома находиться адресным поиском всё равно не будут.

Zkir, BY-FULL опять исчезла из списка в валидаторе…

Червены Клаштор - это addr:city. Дублировать его в левых тегах нет никакой необходимости.

Использование одного тега addr:city не позволяет отличить “Червены Клаштор, “улица есть, пользователь её не указал - улицу нужно добавить”, дом 93” от “Червены Клаштор, дом 93”

Угу, а использование одного addr:housenumber не позволяет отличить “номер дома есть, пользователь его не указал”, от “дом без номера”. А использование одного name не позволяет отличить “название есть, пользователь его не указал”, от “нечто безымянное”. А использование одного natural=wood не позволяет отличить “лес есть, пользователь его не нарисовал”, от “тут нет леса”.
Как будем эти случаи разруливать?

liosha,
Внесение некоторой избыточности в данные, чтобы обнаруживать и исправлять ошибки - это просто основа теории информации, и я не понимаю почему ты с этим споришь.

Адресация - одна из самых важных вещей, и контроль ее целостности так или иначе нужен. Пропущенный тег addr:street - очень типичная ситуация, ее крайне желательно отслеживать.


То что СГ не понимает тип адресации “номер привязан прямо к НП” - это безобразие, я этот вопрос поднимаю при каждом удобном и неудобном случае.

Во-первых, я спорю не с теорией, а с реализацией (более идиотский вариант, чем addr:place, придумать очень сложно). Во-вторых, нельзя считать ошибкой пропущенную НЕОБЯЗАТЕЛЬНУЮ информацию.

Это безобразие, но это “общепринятое” безобразие. Основная масса навигаторов привязывает дома к дорогам с помощью хаков в данных.

Ну почему необязательную?
Ведь если в одном НП для адресов используют улицы, а в другом нет - то как-то нужно эту ситуацию объяснить конвертеру/валидатору?
Иначе отсутствие addr:street там где оно нужно никак будет не отследить.

Потому что в реальном мире дома не всегда адресно привязаны к дорогам.
Даже в Москве таких больше 2%, а в деревнях их гораздо больше.

То, что реальный мир плохо укладывается в чью-то модель - это недостаток модели, а не реального мира.

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

Вот. И как можно однозначно определить в каком НП какая схема адресации используется? без уточняющих тегов?

В конфиге конвертера на каждй НП ? :stuck_out_tongue:

Эта задача тегами в принципе не решается.
http://forum.openstreetmap.org/viewtopic.php?pid=313899#p313899

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

Хорошо. А как тогда искать дома, в которых должен быть addr:street, но его нету?

addr:street=place(если по НП адресация)|no(если не по НП, но улицы нет), ну или suburb добавить, хотя я бы остановился только на place/no, а suburb включить в place. Для программ, которые очень хотят наличие “соответствующей улицы с тегом hw=<не ниже residential>” - проблему не решит, наверное (хотя, ни кто не мешает сгенерировать пару искусственных с access=no “отрезков”), но для тех, кому она не обязательна - облегчит жизнь.
Т.к. “умолчательно” считаем наличие тега улицы обязательным.
Кто так не считает - тег addr:street могут игнорировать.

Я к тому, что если тег “должен быть”, а его нет, то всегда можно добавить некое значение, которое говорит, что “этого тега здесь нет вообще, а не забыли поставить”. Конечно, это как проставлять building=no+highway=no+amenity=no+…*=no, но раз такая проблема имеет место быть надо её решать либо внесение новой сущности в адресации, либо костылём, который скажет “протегировано/забыли проставить”.

Вот не надо, ничего они не фиктивные. Самые настящие достоверные данные, проверенные человеком, что номер дома относится к НП, а не к улице.