и так думаю для начала нужны примеры (поправьте если не прав) вот аншлаги:
дом1 - ул. Мира, д. 4/5
дом2 - ул. Бора, д. 3 , ул. Мора, д. 20
какие еще, подскажите. (понятно что где 4/5 может быть 4/5/n)
и так думаю для начала нужны примеры (поправьте если не прав) вот аншлаги:
дом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 без деления дома (особенно если он сложэной формы и не понятно где что).
Но, если дом простой формы (хрущевки и т.п.) и человек его разделил, то ничего страшного в этом не вижу
значит других аншлагов не бывает (в гугле я тоже не нашел).
Тогда предлагаю следующее:
сомнения:
Что скажет сообщество?
Во-первых, совершенно необязательно. Если дом нигде (ни на табличках, ни в адресах) не значится как 5, но не надо ничего придумывать, писать только 5/6. Кроме того:
addr:streetN не использовать, а addr:housenumberN нужен для записи разных написаний номера дома. Во-первых, это всевозможные варианты дробей, во-вторых, разные написание из разных источников. В КЛАДР “3-5 с1Б”, на табличке “3/5 сВ”, и хоть ты повесься. Кроме того, если улица одна, нет смысла дублировать addr:street.
Вы не читаете меня совсем, похоже.
Моё предложение формулируется так:
Таким образом:
Первая улица, д.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
Существенная разница между этими двумя схемами … мапник Он прекрасно работает с адресными точками но про 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: " не хорошо.
addr2 и housenumber2, потому что addr1 это просто addr и
А возможность появления addr0 учтена?