Ещё одна схема адресации: населённый пункт без улиц

По-моему, если дом адресуется непосредственно через нас. пункт, то и никаких дополнительных addr:* не нужно.
a:city+a:hn вполне его опишут.

зачем дополнительные теги? принадлежнность дома НП видна либо по addr:city либо по включению в полигон НП

liosha, нужно для чего? :slight_smile: валидатор должен определить, что адресные теги заполнены и согласованны (друг с другом и с окрестными улицами)

Zkir, нужно для задания адреса.
Если валидатор на такое ругается, то это недоделка валидатора: адрес-то правильный.

Как же его доделать? Как узнать что адрес правильный? По-моему, схема должна допускать валидацию. Что то вроде бита четности :slight_smile:

Вот еще вариант:
addr:house_by=street|suburb|city
Отсутствие эквивалентно addr:house_by=street
Дает возможность мапить как по микрорайонам, так и по улице, побитой на районы (в Балашихе такое видел)

это как презумпция невиновности - по умолчанию мы считаем, что если улица не указана, адрес указан правильно - дом принадлежит напрямую НП.

В противном случае надо большими буквами писать на вики, что адрес с пустым addr:street невалиден и описывать костыль addr:street=НП

И радостно пропускаем огромное количество домов, где по какой-либо причине не замаплена улица.

http://addresses.amdmi3.ru/?zoom=16&lat=55.73742&lon=37.62028&layers=B00T

А может, addr:street=no ? типа “Нету улицы в этом адресе”.

Что значит “пропускаем”?
Не надо путать валидность и информационную полноту. Если валидатор действительно проверяет валидность, а не указывает на “подозрительные” с т.з. информационной полноты места, то он не должен считать невалидным отсутствие addr:street. Иначе это не валидатор.

Если внимательно приглядеться, там это и написано:

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

Это проблемы того, кто эту чушь написал. Сам по себе адрес без улицы вполне валиден, тем более что в странах типа Японии улица вообще в адресации не участвует.

А валидатор правильности написания адреса не должен проверять правильность самого адреса - это работа другого валидатора, который знает эталонный список адресов. Так что он дожен считать такой адрес правильно записанным, ну или максимум “подозрительным”, но никак не невалидным.

UPD
Для примера, вот тут достаточно полный адресный реестр района - можно посмотреть количество правильных адресов без улиц: http://gis-lab.info/data/mp/addr/?base=istra

В Москве есть Зеленоград и Акулово - в них куча домов должны быть без addr:street (и даже без его аналогов)

Понимаю. Тогда, наверное, разные правила надо применять к разным объектам.

Прошёл. Скорее всего должны быть, но лучше проверить на местности или с помощью авторитетных источников. Это всего лишь подозрительные, но при этом валидные объекты.

Но все-таки их больше 0? Значит, даже в Москве надо применять разные правила валидации?

Ну и неправильно. Такой приём даёт невалидный результат.

Это не проблема валидатора. Это проблема средства автоматической проверки полноты адресных данных.

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

Спор насколько применим термин “невалидные” к неполным данным считаю заранее неконструктивным и не приближающим нас к решению проблемы.

Scondo, тогда нужно про каждый возможный тег придумать, как обозначать его отсутствие, и везде его обозначать :slight_smile:
amenity:no=yes
natural:no=yes
sport:no=yes
etc
А то вдруг кто-то подумает, что просто забыли обозначить

Но ведь пишут же скажем oneway=no и т.п. :wink:

Три решения:

  1. валидатор не считает ошибкой незаполненную улицу, как вариант, может выдавать предупреждение или же ошибку, но по настройкам пользователя.
  2. валидатор должен знать в лицо все места, где улица в адресе отсутствует законно, то есть имеет свою базу таких мест.
  3. валидатор берет информацию о законности из ОСМ. Информацию можно занести или в каждый дом (что-то вроде addr:street=no / addr:emptystreet=yes) или куда-нибудь в район/населенный пункт.

Первый вариант вообще ничему не мешает. Тот, кто работает с Зеленоградом - может в любой момент отключить эту проверку, если она мешает.
Второй вариант тоже ничему не мешает. Только добавлять в базу придется через какой-то специальный механизм (веб-интерфейс или письмо автору).
Третий вариант позволяет любому править информацию о допустимости таких адресов в конкретном месте, но будет замусоривать ОСМ.

Первый вариант должен работать по-любому - пункты 2)/3) ведь могут и не сработать где-то из-за отсутствии для них информации.

“и т.п” нужны для изменения дефолтов, а у addr:* вроде никаких дефолтов и нет