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

Из того, что мне однозначно не нравится - распиленные по диагонали дома.

Теперь про точки vs addrN vs street1, street2
Из приемуществ, у точек, мне видится простота импорта когда нужны просто координаты (геокодер например). Недостатки описал AMDmi3 и имхо они перевешивают все достоинства.

addrN vs addr:housenuber=h1/h2 + street + street2
Тут придти к общему мнению с жителями того-же Питера, я боюсь нам не удастся никогда. Я понимаю что вариант через дробь проще рендерить и проще искать если запрос сразу с дробью, я понимаю что для жителей городов где дробь – это всегда адрес по второй улице – самый простой и наглядный вариант.

Но он не однозначен! Не везде число после дроби – это номер дома по другой улице (иногда дробь – это просто дробь :slight_smile: ) Однозначно определить чем является число после дроби (номером по второй улице с забытым street2 или у здания один адрес с доробью) невозможно.
Почему еще мне нравится addrN – он гибче: сквозная нумерация + нумерация по улице – пожалуйста. Нумерация по нескольким улицам + еще невесть бог что – тоже организуемо, в streetN – нет.

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

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

а по addrN нужен порядок и как можно меньше вариантов (и людям и программам проще).

по поводу дробей, вопрос жителям СПб: как записывается почтовый адрес (паспорт, почта и т.п.) улица, дом

согласен что 5/6 100% не заменит адресацию по точкам, но addr:housenumber=5 и addr1:housenumber=6 вполне
еще тут же вопрос: можно еще адрес гне нет дроби записывать addr1: addr2:, без addr: но я в этом варианте уверен не на 100%, глупость

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

Мне кажется, не столь существенно как оно рендерится, сколько как оно будет искаться.

addr:street=Первая, addr:housenumber=17, alt_addr=Вторая 2;Первая 17/2;Вторая 2/17

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

Я не понимаю в чём проблема с дробями. Схема позволяет писать и addr:housenumber=5 и addr:housenumber=5/6 и addr:housenumber=5 + addr:housenumber2=5/6. Вариант выбирается в зависимости от того, какие номера вообще используются и какой из них (более) официальный. Если речь идёт о том чтобы что-то вычислять из строки housenumber то это однозначно НЕТ, потому что дробь значит разное в разных городах, где-то для угловых домов исппользуется не дробь, дробей может быть много (варианты a/b/c я видел, не исключено что бывают и a/b/c/d), и здесь наблюдается комбинаторный взрыв, потом как b и c могут произвольно меняться местами и опускаться в любых комбинациях. Поддерживать из синхронизацию с streetN тоже невозможно (т.е. кто-то увидел табличку, заменил 1/6/8 на 1/8/6, улицы не поменял, всё сломалось). streetN - однозначно не вариант.

Проблема тут в привычке,причем не в привычке осмеров а в привычке жителей города. Люди живущие в доме первая 17/2 могут вообще Ес не знать что это первая 17 / вторая 2 и на вопрос: “Куда едем?” ответят первая 17/2. Естественно осмеров живущих в городах с такой традицией адресации устроит лишь тот вариант при котором адрес “первая 17/2” для описываемого дома будет основным и будет вводиться как основной.

Можно еще как вариант
addr:hn=17/2
1addr:street=первая/вторая

Плюс опционально addr2:hn=17 addr2:street=первая + addr3:hn=2 addr3:street=вторая
В таком виде две схемы конфликтуют чуть меньше (благодаря тому что нету street2 который бы при такой записи сбивал бы с толку) но появляется разделитель в записи улицы и не очень понятно что делать с уже введенными street2, ну и старик Оккам будет не рад :slight_smile:

В общем выхода нет, давайте удалим к чертям все угловые дома, нет адресов - нет проблем >:) :smiley:

alt_addr=Вторая 2;Первая 17/2;Вторая 2/17 и есть та самая привычка. поиск и по привычкам можно организовать.
а сколько вообще домов с адресами Первая/вторая/третья/четвёртая х/у/z/ф. для них канешна вариантов написать придётся:mad:

и так думаю для начала нужны примеры (поправьте если не прав) вот аншлаги:
дом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