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

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

Я считаю что есть основной, чему отлично соответствует схема с 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 учтена?

Машине всё равно. Тэги - для людей.

Скобки дольше писать, они увеличиваю вероятность ошибок (“addr[2”, “addr]2]”), и это не будет соблюдаться новичками. Вообще, я бы в тегах придерживался минимального алфавита.

Также как и появления addr31337 - никто это парсить это не обязан, но может если умеет.

Что скажут противники схемы предложенной AMDmi3? Или все согласны?
Мне кажется, что этот вопрос ещё раз нужно рассмотреть нашим “Советом” и уже закрепить как соглашение об именовании дорог.

я за простоту.
[] - не стоит
а вот пропуск addr1 не очень хорош, я как программист понимаю, но как человеку объяснить что addr1: писать не надо, т.к. это addr: он возьмёт и напишет addr1: (что доказывает grep). Ясно что addr2 сейчас больше, но не обязательно что это правильно, да запустить бота для перекидывания addr2->addr1 запросто и не думаю что тут можно накосячить. т.е. я прошу рассмотреть addr1 в контексте понимания пользователем, а не в том сколько уже использовано.

для выдвижения на совет, надо урегулировать все НО

Тогда для совета не останется работы Ок :slight_smile:

возможно “совет” это то что с подвигло искать, и призывать к поиску решения :slight_smile: