Плюс этой схемы - полный адрес объекта, по ней описанного, можно восстановить, пользуясь только API. Хитрые геометрические штуки из серии “а попадают ли эти точки вея в полигон” зачастую становятся не нужны.
Помоему - хороший вариант и что хорошо весьма гибкий (это я про релейшены). А НП со сквозной нумерацией домов по стране в общем то не так уж и мало. А на счет того что придут нубы и все расставят не так - ну я нуб - во первых не обязательно что все новички будут делать неправильно, а во вторых поправить теги у домов не великая проблема.
Вопрос то в том, что cladr:code еще более ненадёжен и неустойчив. И решение вопросов адресации с помощью средств для этого не предназначенных еще большая утопия.
Хм.
При отрисовке зданий я часто копирую теги или дублирую все здание целиком. Представим, что скопировали теги со здания, привязанного по кладр-коду к соседней улице. Отвлеклись, а потом забыли поправить адресную информацию. Первая проблема - здание оказалось привязано к соседней улице и эта ситуация не валидируется! Только ручная проверка соответствия кладр-кода!
Вариант второй - в аналогичной ситуации (копирование тегов) исправили addr:street и addr:housenumber, но забыли исправить cladr:code. И это опять ничем не валидируется! Опять вручную проверять код.
В случае релейшенов такой фигни не будет. При копировании тегов или дублировании здание не попадет ни в один релейшен улицы и при простом клике на нем уже будет видно, включено ли оно в какой-либо адресный релейшен. А при выборе релейшена подсветятся здания включенные в него и будут прекрасно видны пропущенные и посторонние полигоны.
Моя мечта – это отношение street с названием улицы и прочими кладрами (на отношении), сборка безымянных ways в нём с ролью street, и сборка всех домов с ролью address. А на доме только номер.
И главная получается улица, уровень А6. Я даже выше сейчас не смотрю (по белорусской схеме), нам тут бы к согласию прийти!
На самом деле такая схема нижнего уровня достаточно вандало-устойчива. Да и поправить какие вновь-прибывшие дома – не большая проблема.
Довести логику до конечных исполнителей очень просто: есть ящик, спереди написано: “ул. Мира”, выдвигаешь его, там лежат дома (точнее, бумажки со ссылкой на реальный дом), берёшь дом, там его номер. И да, is_in тут пригодится, если не считать обратной связью вверх само участие дома в отношении. (хотя мне не очень нравиться и is_in, как вручную проставляемый тег и дублирующий участие в отношении – потенциальны коллизии вида: дом в отношении, is_in’а нет; и наоборот). И всё.
Если сообщество придёт к некоему соглашению, то навязывать эту схему всем.))
У меня хоть и мало домов нарисовано (зато свои, родные, гпсом все собранные), дак никакого желания особого объединять их во что-то нет – не мотивируется как-то из-за как раз раздрая с “единственным и неповторимым” способом их объединения. А еще есть collection для улиц и для многих он лучший и почти все им пользуются. А у меня вот street – ну куда это годится? Разнообразие это всё… И на каждом отрезке название улицы… и ОНО же! на доме еще до кучи. Что бы не забыть, если что))))
Так что, это хорошо, что старая проблема в очередной раз вскрылась. Давайте продолжать?))
Лично мне белорусская схема не понравилась - слишком уж заумно и неестественно. a3, a6…
Если уж браться за адресацию, надо сначала вообще с уровнями определиться, а потом пытаться привязывать эти уровни друг к другу.
В почтовом адресе шесть уровней: страна, регион, район, НП, улица, дом+квартира. Индекс не рассматриваю, поскольку у одной улицы может быть несколько индексов и у нескольких улиц может быть один индекс. Индекс это, фактически, код почтового отделения.
На начальном этапе достаточно определиться с уровнем объединяющим улицы с домами. Следующие этапы проще.
Релейшен не решает только одну проблему - двойную-тройную адресацию.
И хотя с челнинским вариантом адресации особых проблем нет (я могу создать два релейшена - для улицы и для комплекса), есть проблемы с угловыми домами, где дому надо указывать два разных номера для разных улиц.
liosha, а какие три уровня? IMHO, даже если исключить страну, останется еще 5…
associatedStreet может включать только один вей в роли street, что не есть хорошо.
Адрес владения/дома внутри населённого пункта.
можно добавить 4. Адрес внутри владения/дома, но это вроде уже не наш вопрос.
Все остальные “уровни” - это скорее группировки, их может и не быть, или у них может быть слишком много вариаций, чтобы их все учитывать в общей схеме.
релейшен address никем пока не забит, так что можно взять street за основу и расписать свои пожелания.
liosha, в принципе согласен. Можно обойтись и тремя уровнями. Хотя пять выглядело бы более естественно.
По пункту 4 я думал вписывать на точки подъездов тег rooms=xx-xxx. И если бы какой из конвертеров смог бы это использовать - указывал бы путь до подъезда. Но включать это в адресацию смысла нет никакого.
Мои пожелания к релейшену (дополнительно к тому, что есть в street):
возможность указать, в каком теге хранится адрес дома;
возможность указать, что тег name не должен использоваться для адресации.
Ну так я и призываю сначала определиться с уровнями и объектами адресации.
И только потом можно будет придумывать, как описывать и определять, например, принадлежность дома к нас. пункту и адрес дома внутри этого нас. пункта.