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

Родилась мысль, как задать двойную адресацию. Практику, когда здание разбивают на два по диагонали и присваивают отдельный адрес каждому треугольнику, я считаю удачной. Осталось обозначить, что эти треугольники принадлежат одному и тому же зданию.

Нужно relation. Присвоить ему тип “building”.
Все половинки, на которые разбит дом, включить в отношение с ролью, скажем, “part”. Таким образом, рендерер сможет увидеть, что здание состоит из нескольких частей, после чего возможны варианты: подписать в адресе не только номер дома, но и улицу; в результатах поиска выдавать все адреса этого здания, отображать не треугольный кусок, а целое здание; если адресация по-барабану, опять же отображать всё здание (сумма областей).

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

Совершенно неудачная мысль с разбиванием здания по диагонали. 3Д-рендерер с ума сойдёт такое рисовать, например. Да и вообще, одно здание – один полигон.

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

Мысль разбивать здания на треугольники - это какой-то тихий ужас.

одно здание – один полигон.
Вот именно.

Один полигон по какому горизонтальному сечению? По фундаменту? По крыше? Или по середине высоты здания?
С типовыми прямоугольными коробками всё понятно, но вот здания, состоящие из кусков разной этажности одним полигоном проблематично нарисовать…

Один мультиполигон. Кускам мультиполигона можно задать разную высоту.

Рассматривайте это утверждение в контексте адресов, а не конфигурации здания. Здание с двумя адресами – это одно здание, а не два треугольных здания.

Как вам такое предложение

Исползовать префиксы addr:, addr2:, addr3:, addrN:

При этом основным считается addr:.
Для угловых домов достаточно задать addr:street=street1 addr:housenumber=n1 (это уже зачастую есть) и addr2:street=street2 addr2:housenumber=n2
Притом если в городе существует еще и сквозная нумерация то + addr3:housenumber=сквозной номер дома

Такой подход прост и обратносовместим с самой популярной ныне карлсруэ.
Это проще чем addr:housenumber=1/2 addr:street=street1 addr:street2=street2 и гибче т.к. позволяет учесть другие виды адресации помимо улица-дом. и определяет номер дома однозначно вне зависимости от вида разделителя и символов в номере дома.

В addr:street писать имя улицы со статусной частью (вроде и так все так делают) - это позволяет определить улицу однозначно (отличить пер. Нарского от ул. Нарского если они рядом)
в самих улицах использовать имена для сортировки name:sort1 name:sort2 (тег стоит обсудить).
т.е. для “ул. Начдива Васильва” name:sort1=Начдива Васильва name:sort2=Васильва
для “набережная Рабочей Молодежи” name:sort1=Рабочей Молодежи
Впрочем имена для сортировки это отдельный разговор прямого отношения к адресации не имеющий

Такая схема конечно не отлавливает очепятки в названиях улиц в адресах. Впрочем бот который это делает вроде уже действует. Так же добавить проверку имени улицы в адресах в валидатор.
Поиск опечаток в общем то неплохо автоматизируется.
Переименование улицы конечно сложнее чем просто поменять имя релейшена но все-же адреса мы вбиваем чаще чем улицы переименовываем.

Кто что имеет сказать по этому поводу?

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

Как вариант вполне годится.
Тогда addrN:housenumber задаёт альтернативный адрес, а addr:housenumberN - альтернативное написание адреса (например, когда в одних местах пишут д.1, а в других - д.1с1).

ну и вы не забывайте, что иногда официальный номер дома — через дробь. Тогда разделение на addr и addr2 не подойдёт.

В смысле, расскажите по подробнее не понял что не подойдет и почему не подойдет.
Если у дома один адрес и он содержит дробь то так и будет addr:housenumber=1/2
Если два адреса то addr:housenumber=1/2 и addr2:housenumber=3/4

Принято. Вполне можно ограничиться N <= 3 (а то и 2) в конце концов 2 адреса редкость а 3 я могу представить лишь теоретически (угловой дом при смешанной адресации: жилой комлекс-дом + улица-дом).

Спасибо, учту это когда буду писать пропозал.

ну вот вы представить 3 можете только теоретически… а тут в комьюнити есть усатое которое в таком живёт :slight_smile:

Угу.
Причём, если убрать соседний дом, у моего было бы 4 адреса.
А если убрать мой и будку во дворе, то у соседнего, и с адресами по вашей схеме будет совсем трындец. А именно:
addr:street = Партизанский просп.
addr:housenumber = 105/13/15/28
addr:housenumber2 = 105/15/13/28
addr:housenumber3 = 105/15/28/13
addr:housenumber4 = 105/28/15/13

addr2:street = Челюскинцев ул.
addr2:housenumber = 15/105/13
addr2:housenumber2 = 15/13/105
addr2:housenumber3 = 15/105/28/13
addr2:housenumber4 = 15/28/105/13

addr3:street = Центральная ул.
addr3:housenumber = 13/105/15…
addr3:housenumber2 = 13/15/105…

addr4:street = Радиальная ул.

addr4:housenumber4 = 28/15/105/13

При этом я запросто предстваляю дом на 5 улицах. А если ещё и по микрорайонам в городе адресовать…

Это реальные адреса, или ты сам их придумал? :slight_smile:
Что-то сомнительно, что хоть в одном документе он так написан

А что в этом номере дома 105/13/15/28 что? Ведь не говорите же вы я живу в доме 105/13/15/28.

И расскажите подробности вашей адресации или скажите где почитать.

3 адреса это не ограничение схемы, а скорее рекомендация - не злоупотреблять их количеством.
В любом случае бОльшое количество адресов требует бОльших ресурсов.

А кажись догадался, я как раз таки предлагаю писать:

addr:street = Партизанский просп.
addr:housenumber = 105

addr2:street = Челюскинцев ул.
addr2:housenumber = 15

addr3:street = Центральная ул.
addr3:housenumber = 13

addr4:street = Радиальная ул.
addr4:housenumber4 = 28

Ведь по каждой из улиц дом имеет 1 номер, а не <количество перестановок для N улиц> номеров.

И прямой геокодинг был бы:
Партизанский просп. 105 / Челюскинцев ул. 15 / Центральная ул. 13 / Радиальная ул. 28

Или я чего-то не догоняю?

у Котяры у дома реальных 3 адреса.
один основной и 2 доп. но они все реальные
по минску дома с 3-я адресами не особая редкость.
естественно я рассматриваю только дома имеющие 3 таблички, а не стоящие на слиянии 3-х улиц.

wildMan, про три адреса я знаю, у нас тоже такие есть.
Я спрашивал про написание номера дома: реально где-то пишется “Партизанский просп., дом 105/13/15/28”??

нет конечно.
на старых угловых домах - главная улица, номер по главной/номер по второй (Партизанский просп., 105/13). но я такие видел только для случая с 2-мя адресами (cтарый дом == таблички старого образца)
на новых - отдельные таблички - Партизанский просп., 105; Центральная, 13; Челюскинцев, 13

но на новых табличках есть дробное обозначение строений %(