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

и так думаю для начала нужны примеры (поправьте если не прав) вот аншлаги:
дом1 - ул. Мира, д. 4/5
дом2 - ул. Бора, д. 3 , ул. Мора, д. 20

какие еще, подскажите. (понятно что где 4/5 может быть 4/5/n)

addr:housenumber=17/2 addr:street=первая

addr:street=улица Мира + addr:housenumber=4/5

addr:street=улица Бора + addr:housenumber=3 + addr2:street=улица Мора + addr2:housenumber=20

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

вот и я пока проблемы не вижу.
Бывают другие аншлаги, в плане вариации

Какими бы они не были, есть возможность такими их и записать, все. Причём компактно, консистентно и с возможностью выбрать потом что обрабатывать, а что нет.

Проблема как обычно - в поддержке этой схемы в редакторах/рендерерах/конвертерах.

Все эти костыли возникают из-за отсутствия списков в качестве атрибутов. Если на API мы влиять не в силах - есть смысл попробовать повлиять на поддержку в редакторах & etc. А как именно потом это в базу разложится - вопрос больше технический.

В стандартах обычно используют слова MAY, SHOULD и MUST для описания частей, для которых допустима частичная реализация. Не вижу проблемы постулировать необходимость поддержки фиксированного набора дополнительных адресов, а именно addr2, addr3, addr4 (хватит всем). Ограниченные средства смогут просто продублировать правила/запросы для адресов ещё 3 раза и успокоиться. Более умный софт сможет перебрать все addrN и для каждого из них все housenumberN.

На самом деле главный вопрос, на мой взгляд звучит так: есть ли у дома основной адрес и ряд дополнительной информации или несколько равноправных адресов.

Я считаю что есть основной, чему отлично соответствует схема с addr{n}:

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

P.S. что избавится от догадок, и “а может этого не хватит”

Одно можно сказать точно: должна быть возможность воспроизвести (отрендерить) адрес в том виде, в котором он известен жителям города. Если на табличке дома и в паспортах жителей стоит адрес “Улица1 17/2”, то по адресу “Улица2 2/17” тот же самый дом вы никогда в жизни не найдете. Т.е. варианты с разбиением дома пополам или добавлением адреса в виде двух точек ущербны изначально.

Если уж не устраивает просто запись через дробь, то должно быть что-то вроде:
addr:street=Улица1
addr:housenumber=17/2
addr:street1=Улица1
addr:housenumber1=17
addr:street2=Улица2
addr:housenumber2=2

Только не addr:…N, а addrN:…

В Воронеже крайне редко встречается угловая нумерация, возможно её даже и нет.
Единственный раз когда видел такую нумерацию - был в Сочи. И согласен, что проще ставить addr и addr2 без деления дома (особенно если он сложэной формы и не понятно где что).
Но, если дом простой формы (хрущевки и т.п.) и человек его разделил, то ничего страшного в этом не вижу :slight_smile:

значит других аншлагов не бывает (в гугле я тоже не нашел).

Тогда предлагаю следующее:

  • для записи двойных/тройных/четверных адресов официально (на сколько это возможно в ОСМ) использовать addrN:
  • начальные теги (addr:street, addr:housenumber) использовать для официального адреса или наиболее употребляемого жителями (если таковой есть), в противном случае любой (можно например по часовой стрелке или просто любой)
  • для адресов ул. Первая, д. 5/6 записывать: addr:street=Первая улица, addr:housenumber=5/6, addr1:street=Первая улица, addr1:housenumber=5, addr2:street=Вторая улица, addr2:housenumber=6
  • для адресов ул. Первая, д. 5 и ул. Вторая, д.6: addr:street=Первая улица, addr:housenumber=5, addr1:street=Вторая улица, addr1:housenumber=6
  • теги addr:streetN и addr:housenumberN не использовать

сомнения:

  • возможна война правок по определению официального адреса или наиболее употребляемого
  • не ясно надо ли записывать адрес с обратной дробью ул. Вторая, д. 6/5

Что скажет сообщество?

Во-первых, совершенно необязательно. Если дом нигде (ни на табличках, ни в адресах) не значится как 5, но не надо ничего придумывать, писать только 5/6. Кроме того:

addr:streetN не использовать, а addr:housenumberN нужен для записи разных написаний номера дома. Во-первых, это всевозможные варианты дробей, во-вторых, разные написание из разных источников. В КЛАДР “3-5 с1Б”, на табличке “3/5 сВ”, и хоть ты повесься. Кроме того, если улица одна, нет смысла дублировать addr:street.

Вы не читаете меня совсем, похоже.

Моё предложение формулируется так:

  • для записи двойных/тройных/четверных адресов официально (на сколько это возможно в ОСМ) использовать addrN:
  • начальные теги (addr:street, addr:housenumber) использовать для официального адреса или наиболее употребляемого жителями (если таковой есть), в противном случае любой (можно например по часовой стрелке или просто любой)
  • при наличии адресов по разным улицам используются тэги addrN
  • при наличии разных вариантов написания номера дома по одной улице, в соответствующем addr или addrN используются addr:housenumberN
  • как для адресов по другим улица, там и для альтернативных номеров домов заносить только те, что реально используются
  • addr:streetN не использовать

Таким образом:

Первая улица, д.5/6
addr:street=Первая улица
addr:housenumber=5/6

Первая улица, д.5/6, Вторая улица, д.6/5
addr:street=Первая улица
addr:housenumber=5/6
addr2:street=Вторая улица
addr2:housenumber=6/5

Первая улица, д.5/6 (и табличка со стороны Первой улица с номером 1), Вторая улица, д.6/5 (и табличка со стороны Второй улицы с номером 6)
addr:street=Первая улица
addr:housenumber=5/6
addr:housenumber2=5
addr2:street=Вторая улица
addr2:housenumber=6/5
addr2:housenumber2=6

Существенная разница между этими двумя схемами … мапник :slight_smile: Он прекрасно работает с адресными точками но про addrN: ничего не знает …

не понял, если первая табличка Первая улица, д.5, вторая табличка Вторая улица, д.3 сВ (а в КЛАДРе 3 с1Б) то:
addr:street=Первая улица
addr:housenumber=5
addr1:street=Вторая улица
addr1:housenumber=3 сВ
addr1:housenumber1=3 с1Б

так?

мапник можно научить. Сейчас главное найти удобный/понятный/универсальный вариант

Так, но addr2 и housenumber2, потому что addr1 это просто addr и


% grep -o 'addr[0-9]' russia-120224.osm | sort | uniq -c          
   2 addr1
1612 addr2
  10 addr3
% grep -o 'housenumber[0-9]' russia-120224.osm | sort | uniq -c 
   9 housenumber1
1539 housenumber2
  10 housenumber3

Прочёл всю тему и наиболее вразумительными мне кажутся доводы AMDmi3. Всецело поддерживаю.

Немного напрягает слитное написание числа и тега, это же ужасно. Давайте, что ли, как массив писать.

addr:street=Первая улица
addr:housenumber=5/6
addr:housenumber[2]=5
addr[2]:street=Вторая улица
addr[2]:housenumber=6/5
addr[2]:housenumber[2]=6

И все двоеточия заменить на точку, вот тогда будет ня.

Зато писать быстрее. На вкус и цвет. ЧТо скажут конвертерщики? AMDmi3?

А это ещё зачем? рушить существующую схему " addr: " не хорошо.

А возможность появления addr0 учтена?