Обсуждаем способы задать адресацию

Я делаю отношение street по вики. А в белорусском варианте дома к улицам привязываются?

Да, привязываются.
http://sites.google.com/site/osmbelarus/Home/manuals/osm-manual/osm-manuals-address

Плюс этой схемы - полный адрес объекта, по ней описанного, можно восстановить, пользуясь только API. Хитрые геометрические штуки из серии “а попадают ли эти точки вея в полигон” зачастую становятся не нужны.

Помоему - хороший вариант и что хорошо весьма гибкий (это я про релейшены). А НП со сквозной нумерацией домов по стране в общем то не так уж и мало. А на счет того что придут нубы и все расставят не так - ну я нуб - во первых не обязательно что все новички будут делать неправильно, а во вторых поправить теги у домов не великая проблема.

Я тоже за адресацию исключительно при помощи релейшенов.

Обязательно будут делать неправильно. Хотя не все, разумеется, но этого никто и не утверждал.

Адресация с помощью релейшенов - это имхо утопия.
Во всяком случае, пока.
Слишком уж ненадёжная это штука.

В чём именно проявляется их ненадёжность?

В том, что рушатся от любого чиха.
И чем больше их будет, тем чаще будут рушиться.

Вопрос то в том, что cladr:code еще более ненадёжен и неустойчив. И решение вопросов адресации с помощью средств для этого не предназначенных еще большая утопия.

Ну это ты зря, cladr:code гораздо надёжнее релейшенов.
Хотя проблем у него полно: неуниверсально и привязано к внешней базе

Хм.
При отрисовке зданий я часто копирую теги или дублирую все здание целиком. Представим, что скопировали теги со здания, привязанного по кладр-коду к соседней улице. Отвлеклись, а потом забыли поправить адресную информацию. Первая проблема - здание оказалось привязано к соседней улице и эта ситуация не валидируется! Только ручная проверка соответствия кладр-кода!
Вариант второй - в аналогичной ситуации (копирование тегов) исправили addr:street и addr:housenumber, но забыли исправить cladr:code. И это опять ничем не валидируется! Опять вручную проверять код.

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

Моя мечта – это отношение street с названием улицы и прочими кладрами (на отношении), сборка безымянных ways в нём с ролью street, и сборка всех домов с ролью address. А на доме только номер.
И главная получается улица, уровень А6. Я даже выше сейчас не смотрю (по белорусской схеме), нам тут бы к согласию прийти!
На самом деле такая схема нижнего уровня достаточно вандало-устойчива. Да и поправить какие вновь-прибывшие дома – не большая проблема.
Довести логику до конечных исполнителей очень просто: есть ящик, спереди написано: “ул. Мира”, выдвигаешь его, там лежат дома (точнее, бумажки со ссылкой на реальный дом), берёшь дом, там его номер. И да, is_in тут пригодится, если не считать обратной связью вверх само участие дома в отношении. (хотя мне не очень нравиться и is_in, как вручную проставляемый тег и дублирующий участие в отношении – потенциальны коллизии вида: дом в отношении, is_in’а нет; и наоборот). И всё.
Если сообщество придёт к некоему соглашению, то навязывать эту схему всем.))
У меня хоть и мало домов нарисовано (зато свои, родные, гпсом все собранные), дак никакого желания особого объединять их во что-то нет – не мотивируется как-то из-за как раз раздрая с “единственным и неповторимым” способом их объединения. А еще есть collection для улиц и для многих он лучший и почти все им пользуются. А у меня вот street – ну куда это годится? Разнообразие это всё… И на каждом отрезке название улицы… и ОНО же! на доме еще до кучи. Что бы не забыть, если что))))
Так что, это хорошо, что старая проблема в очередной раз вскрылась. Давайте продолжать?))

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

В почтовом адресе шесть уровней: страна, регион, район, НП, улица, дом+квартира. Индекс не рассматриваю, поскольку у одной улицы может быть несколько индексов и у нескольких улиц может быть один индекс. Индекс это, фактически, код почтового отделения.

На начальном этапе достаточно определиться с уровнем объединяющим улицы с домами. Следующие этапы проще.

Я тоже за адресацию с помощью отношений. Предлагаю обсудить схему им. Котяры (вернее, им. Michael_D).

Ну, для начала, я не согласен, что уровней шесть - на мой взгляд их три :slight_smile:

Кроме того, объединить дома в релейшен улицы - это самое простое, что можно придумать.
Релейшены такие уже есть:
http://wiki.openstreetmap.org/wiki/Relations/Proposed/Street
http://wiki.openstreetmap.org/wiki/Relation:associatedStreet#Using_Relations_to_associate_house_and_street_.28optional.29
Так что тут особо и обсуждать нечего. А вот дальше-то что? :slight_smile:

Я хоть за какую-то единую схему адресации.

Релейшен не решает только одну проблему - двойную-тройную адресацию.
И хотя с челнинским вариантом адресации особых проблем нет (я могу создать два релейшена - для улицы и для комплекса), есть проблемы с угловыми домами, где дому надо указывать два разных номера для разных улиц.

liosha, а какие три уровня? IMHO, даже если исключить страну, останется еще 5…
associatedStreet может включать только один вей в роли street, что не есть хорошо.

Основных уровня три:

  1. Страна
  2. Адрес населённого пункта внутри страны
  3. Адрес владения/дома внутри населённого пункта.
    можно добавить 4. Адрес внутри владения/дома, но это вроде уже не наш вопрос.

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

релейшен address никем пока не забит, так что можно взять street за основу и расписать свои пожелания.

liosha, в принципе согласен. Можно обойтись и тремя уровнями. Хотя пять выглядело бы более естественно.
По пункту 4 я думал вписывать на точки подъездов тег rooms=xx-xxx. И если бы какой из конвертеров смог бы это использовать - указывал бы путь до подъезда. Но включать это в адресацию смысла нет никакого.

Мои пожелания к релейшену (дополнительно к тому, что есть в street):

  • возможность указать, в каком теге хранится адрес дома;
  • возможность указать, что тег name не должен использоваться для адресации.