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

Ещё раз спрошу: как в таком случае предлагается отмечать “улицы” типа “берег Невской Губы” или “67-й км МОЖД”? Или улицы, от которых уже реально вообще ничего не осталось, кроме адреса на паре домов?

Ну так может сначала стоит прочитать http://wiki.openstreetmap.org/wiki/RU:Key:addr ?
Эта схема не предполагает ни “берег Невской Губы” или “67-й км МОЖД”. Может придумать и придерживаться какой-то логичной схемы чем просто говорить что адрес это абстракция … Ну я не знаю addr:like_a_street

+1

Вот-вот, “улицы” типа “берег Невской Губы” или “67-й км МОЖД” улицами вообще ни в каком смыле не являются, и зачем их пихать в addr:street я не знаю. В вики довольно ясно записано что addr:street должна соответствовать существующей улице.

Возможно, следует ввести другой тег, например, addr:locality. Названия “бывших улиц” и микрорайонов тоже записывать в addr:locality.

Ну и можно поставить точку place=locality c тем же самым именем (если нет никого другого объекта с этим самым именем). Все-таки в адресах фигурируют не абстракции, а названия мест.

ок, какие теги и как прописывать, чтобы была адресация вида «деревня Такаято, дом 3»?

Kostik, если других аргументов а пользу service, кроме разбитости, нет, то да, переделывать, потому что улица (residential) отличается от дворового проезда (service) или следа от трактора в поле (track) вовсе не степенью разбитости. Вику читайте. :wink:

Именно что абстракции. Даже улицу “местом” назвать можно с натяжкой, а “63-й км” вообще ни разу не место.

Я вполне согласен, что “4-й микрорайон” - это объективно не улица, но с точки зрения адресации от улицы он ничем не отличается: для адресации совершенно фиолетово, есть ли у объекта проезжая часть или нет. И поэтому непонятно, зачем для него нужен какой-то другой тег.

addr:like_a_city=деревня Такаято,
addr:like_a_housenumber=3,
вестимо :slight_smile:

В вики также нет ничего похожего на альтернативу.

Про place=locality написано что это необитаемое место. Хотя зачем вообще это правило не ясно, и лучшего термина чем locality для всяких берегов я сходу назвать не могу. А на английской странице place про locality написано “does not have any population”, что совершенно не тождествено “необитаемому”. Кстати, там-же появилось (может и очень давно, но на русской версии этого нет) farm - так давайте наконец добавим у себя allotments, suburb будем использовать для микрорайонов, а locality для этих эфемерных адресуемых объектов типа берега Невской Губы. Парки ещё есть - их, наверное, туда-же.

Далее, в адресах addr:<значение из этого place>=<name этого place>. Всё адресуется, всё валидируется, хотя ещё было бы неплохо иметь возможность точно указать что конечным слоем адресации является именно это suburb/locality и улицы нет и быть не может. Типа addr:no_street=yes.

Я бы предложил выделять полигонами группы домов, относящихся к данной улице, или ставить точку где-то в центре этой “улицы”. Вопрос - каким тегом этот полигон или точку обозначать - остается открытым. Но считаю полезным, если подобные улицы будут искаться в поиске - пусть даже найдется точка или полигон вместо вея.

Для адреса Деревня Кукуево дом 3 - все просто:
addr:housenumber=3

и усе :slight_smile:
addr:city = Деревня Кукуево - из полигона, если нет полигона можно и ручками.

Вот что делать с площадями набережными и т.п. действительно вопрос.

Это ничего не говорит о том, пропущена улица или её в принципе нет. Кроме того, в name place не пишутся статусные части, т.е. для сопоставления уже придётся применять кое-какую логику.

Это говорит о том, что её в принципе нет.

Лёша, в той же Москве дофига домов без улиц, но с addr:housenumber (и с кладр-кодом, ага). И сейчас в валидаторе они показываются как ошибки, что правильно.

Ну они же в Москве и есть ошибки. А в Зеленограде, например, - не ошибки. И если валидатор на них ругнётся, то это уже баг валидатора :slight_smile:

Ага, только нужно знать где отсутствие улицы является ошибкой, а где нет, для этого и предложен addr:no_street=yes.

Ну как бы да тут есть засада, что непонятно, толи улицы в адресе нету, толи забыли проставить. Можно писать addr:street=none но это костылями пахнет. В самой схеме (key:addr), обязательным является только housenumber.

А как узнать, отсутствие addr:no_street - это ошибка или нет?
Давай, чтобы не перепутать, введём для этого тег no{addr:no_street}=yes

Очевидно же, что при наличии addr:housenumber должен присутствовать ровно один тэг из addr:street и addr:no_street.

Если нету - значит нету. А если забыли проставить, то это ошибка в данных.

И почему addr:housenumber вдруг стал обязательным? Вполне себе встречаются здания без номера. В реестрах так и пишут: “ул. Левая, б/н”