Угловые дома, снова

Закончил навешивать стили и т.п. красивости. Можно править, если кто боялся что правки наложатся.

Давайте вернемся к обсуждению. Я конечно могу сделать как чуваки с lanes general extension: голосуем, раз, два, три – кто не успел возразить - тот опоздал, но толку не будет.
Табличку я всетаки заводил как иллюстрацию к обсуждению а не как ответ на все вопросы.

Итак, что я думаю по теме:

A (Земельные участки) - если участок отмечен полигоном - отмечать через карлсруе простовляя тэги на полигон. Если внутри есть строения с отличным адресом - то их так же адресовать через атрибуты на контуре здания. Если полигона нет - адрес задавать точкой, (а лучше добавить полигон). Если адресов у участка несколько - AddrN

B - карлсруэ

С (здание с пристроем / из секций с 1 адресом) - копируем тэги на все секции.

D (угловое без пристроек) - AddrN (продолжаем спор с Питером :slight_smile: )

E (угловое с пристройками) -AddrN, тэги с адресами копируем на все куски здания.

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

G - не знаю что будет лучше распилить или 2 точки внурь воткнуть (если в здании будут пои - то за распилить).

H - AddrN, кто бы сомневался что я его выберу.

I - Атрибуты ставим на сам релейшен. За полигоны с накладывающимися/сопрягающимися аутерами - я бы ругался, хотя вроде никому это проблем особых не создает. Но всеравно бяка.

(Еще раз ссылочка на вики http://wiki.openstreetmap.org/wiki/RU:Адресация )

Вот что я подумал на днях, как разработчик поисковика. addrN сложно поддерживать SQL-скриптами кроме addrN (1-4) еще есть всякие сочетания, которые надо учитывать и это не просто. Я понимаю что под рендеры/навигаторы/пр. мы не рисуем, но надо к ним тоже прислушиваться, если данными будет тяжело пользоваться, то и программ не будет. А кому нужны голые данные, которые нечем обработать/посмотреть?

** ErshKUS понял, что его поисковик не совсем правильно работает по addrN схеме, и научить будет не просто :frowning: *

P.S.
В “C” предлагаю отношения, они как бы для этого, чтоб не дублировать информацию и указании единой сущности. А так получаем дублирование адресов и не ясно ошибка это или так и надо

Мои соображения:

A (участки) - возможно ли что-то кроме Карлруэ? Участки с несколькими адресами мне неизвестны.

B (нормальные одиночные дома) - Карлруэ без вариантов, но стоит уточнить, что если форма неизвестна, надо ставить точку с адресом и building=yes.

С (дом из кусков с 1 адресом) - согласен, либо копируем теги (хотя адреса будут повторяться - для валидации не очень), либо поддерживаем адрес на неком отношении (building? multipart? multipolygon с несколькими outer?). С учётом 3D в среднесрочной перспективе без отношений всё рано никак.

D - если у углового дома два номера (первая 15 = вторая 22), то однозначно AddrN, а если номером (на табличке, в паспортах) является 15/22, то надо думать и обсуждать.

E - сначало с обычными угловыми решить надо

F - я за распил на секции, но в случае неизвестной формы секций (всякие дома-кресты-загогулины, замапенные без знания планирорвки) можно согласиться с точками внутри (точка = где-то здесь секция 100а).

G - принципиально не отличается от F, но расположение известно реже. Либо грубо делить, либо точки.

H - да, тут AddrN наиболее логичен (если в доме нет двух сущностей с разными адресами). Точки внутри только в случае POI.

I (мультиполигон) - теги на мультиполигон. Кусковые дома с разными адресами делим на мультиполигоны :slight_smile:

Ну, главное - чтобы первый адрес искал). А дальше - если поиск по тегам делать (названия магазинов, операторы АЗС, и. т. д.), то прочие теги всё равно обрабатывать… Можно OSM-препроцессор сделать для выдёргивания адресов.

Препроцессор полюбому нужен. Если следовать тому как AddrN задумывалась то доп адресов - один, в собо тяжких случаях - 2. Схема не задумывалась для случая F. (Это я к тому, что вариант, обрабатывать первые 4 - вполне годен).

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

Дом c адресом Улица1 д.1/2 может быть: Улица2 д.2/1, Улица1 д.1, Улица2 д.2.
addr:housenumber=1/2
addr:housenumber2=1
addr2:housenumber=2/1
addr:housenumber2=2

Не обязательно все на одном доме, но вариантов уже больше чем два и проверять придется все. Страшно подумать о домах 1/2/3. Вложенные циклы. Хорошо у нас ограничились 1/2 :).

Ну а какие альтернативы?

Если addr:housenumber=1/2 + addr:street2 + addr:street то дом по запросу Улица2 дом 2, улица 2 дом 2/1 не будет находиться. При поиске точного совпадения не будет находиться и Улица 1 дом 1. Чтобы получить остальные адреса понадобиться препроцессинг. Ну либо, 2 запроса: на первый адрес + запрос с функцией которая переставит 1/2 на 2/1 и присобачит улицу из street2, проверив, что она есть. И опять же вы таким запросом выдернете адреса вида Улица 1 дом 1/2 и Улица 2 дом 2/1 т.е. вы не получите адреса дом 1 и дом 2.

С точками - свои заморочки с поиском пои, ну и опять же определить по точкам надо ли делать для дома составной адрес через дробь - невозможно.

Воткните 2 запроса addr:housenumber=1/2 и addr2:housenumber=2/1 - так, при нестрогом совпадении, вы найдете дом по всем четырем запросам. Т.е. без поддержки addrN:streetN (собственно в первоначальном варианте ее и небыло да и необязательно эту фишку поддерживать).

Давайте все же варианты сравнивать между собой. Написать недостатки любой из схем я и сам могу, да и не только я.

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

Какие именно отношения? Иначе многие прочтут твою реплику как: “Собираем все на свете в мультиполигон, а то поиск работать не будет” :smiley:

Поддерживаю, отказ от addr:streetN. Только addrN:street.

http://forum.openstreetmap.org/viewtopic.php?pid=223569#p223569

Еще раз подниму тему. Предлагаю отказаться от варианта addrN.housenumberN, причины:
-так может быть использован устаревший вариант addr.streetN+addr.housenumberN
-упрощение обработки и исключение вариантов addr9.street+addr9.housenumber9
-его вполне заменяет addrN.housenumber+addrN.street
Отрицательная сторона: дублируется addr.streetN

Написание на табличке не влияет на количество тегов адресации.

http://forum.openstreetmap.org/viewtopic.php?pid=607365#p607365 - номер с дробъю не значит что адрес один, поэтому может быть несколько тегов адресов
http://forum.openstreetmap.org/viewtopic.php?pid=607367#p607367 - написания региональные и разные
http://forum.openstreetmap.org/viewtopic.php?pid=223722#p223722 - в этой же теме указывалось что иногда табличек просто нет и https://ru.wikipedia.org/wiki/Дом_Мурузи по трём адресам известен

Только таблички и планы, выдумки оставить в КЛАДР/ФИАС.

“G. Частный дом на 2 семьи с 2мя входами и 2мя адресами.” по streetN тегировать не имеет смысла.

Я видел такие дома, две-три-четыре квартиры в одном доме.

Предлагаю дом тегировать по Карлсруэ, а точки калиток или входов как

entrance=* + ref=1, entrance=* + ref=2, entrance=* + ref=3, entrance=* + ref=4

Указывать теги на доме смысла мало (число квартир можно отметить другим тегом building:flats=*), а вот вход в отдельную квартиру не очевиден если участок с 2/3 сторон доступен.

Если это квартиры в одном доме - то addr:flats=1, addr:flats=2, addr:flats=3 и addr:flats=4.

Кто из ref/addr:flats победит мне всё равно, видимо addr:flats как более универсальный и относящийся к тегам адресов addr:=.

В итоге я против любых addr:streetN в пользу addrN как единственного задокументрированного.

http://forum.openstreetmap.org/viewtopic.php?pid=223510#p223510

http://forum.openstreetmap.org/viewtopic.php?pid=223561#p223561

http://forum.openstreetmap.org/viewtopic.php?pid=223564#p223564

http://forum.openstreetmap.org/viewtopic.php?pid=223569#p223569

Если адреса два - просто addr:housenumber=5 и addr2:housenumber=6.

Не нужно прямых дробей в AddrN. Не нужно обратных дробей в AddrN.

Влепливание нескольких номеров домов в один тег housenumber через дробь неоднозначно и нет ни одной причины этому следовать.

http://wiki.openstreetmap.org/wiki/RU:Addresses#Угловые_дома

Все примеры с streetN на RU:Addresses следует поменять на addrN т.к. половина участников темы её поддерживала, а не streetN.

а вот addr:flats мне нравится больше, чем ref. мапить как сами входы в дом, так и калитки, по недостижимости входа в дом.
всяко лучше бросить точку на ворота (при наличии знания) чем никак.

“реф” фигзнат, это подъезд? (парадная, в смысле, в staircases), не?

upd: хе-хе, только недавно видел house, по одному проезду (вход, семья) адресуется как 5/8, а соседний вход, за углом, по соседнему проезду (пересечение) 8/5, свой вход, другая семья. Так, и больше никак))

вот тут точки отдельные напрашиваются))))

Перед вами одноэтажный многоквартирник (building=apartments + building:levels=1).

ref и addr:flats - так же как и в многоэтажных квартирниках (building=apartments + building:levels>1)

ref=* - номер входа
addr:flats - диапазон квартир

4 квартиры с 3 входами:
Северный вход ref=1 + addr:flats=1
Восточный вход ref=2 + addr:flats=2-3
Южный вход ref=3 addr:flats=4

Буквенные индексы
Север ref=1 + addr:flats=1
Юг ref=2 + addr:flats=1А (буквенный индекс)

Не исключено что первой либо 2 квартиры нет, тогда это можно затегировать просто
Юг ref=1 + addr:flats=2 (на самом доме building:flats=1 для обозначения одной оставшейся квартиры в доме)

Как минимум разный ref=* можно у них ввести. Про количество квартир и их номера сами определятся, если интересно будет.

Я понимаю, что сообщество завернуло, но использовать не запрещено: associated_address.
Да, старые добрые адресные точки. Да, простенькое адресное отношение (как дополнение).