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

по мотивам http://forum.openstreetmap.org/viewtopic.php?pid=223404#p223404

Предлагаю всё-таки решить эту проблему.

В вике перечислены основные варианты и суть (думаю расписывать не стоит) http://wiki.openstreetmap.org/wiki/RU:Key:addr#.D0.A3.D0.B3.D0.BB.D0.BE.D0.B2.D1.8B.D0.B5_.D0.B4.D0.BE.D0.BC.D0.B0

Призываю к конструктивному обсуждению (если верить вике то было уже 4 обсуждения). Какой вариант вам кажется оптимальнее и **почему **? Или какой вариант совсем не применим и так же - почему? (сделаем некие выборы)

Все кого этот вопрос волнует - welcome (надеюсь в пятый раз мы договоримся наконец)

Разве не сошлись уже давно на addrN? И addr:streetN не надо выделять в отдельный вариант, он замечательно дополняет любой из.

А разве addr{x}:street{y} вообще хоть один конвертор/рендер поддерживает? Зачем городить схему, которую потом невозможно использовать. У меня вот даже мыслей нет, как можно обрабатывать кастомные адресные варианты с addr2:street и прочими addr:street2 Вроде бы уже проходили это. Теги addr: на самом здании по основному адресу и отдельная точка с нормальными тегами внутри здания.

Да - поболтать мы всегда готовы, но чем addrN не устраивает? Надо только решить, признавать ли полноценной заменой (которая настоятельно рекомендована к поддержке всюду) релейшен street или associatedStreet.

Я вижу только 2 вменяемых варианта: пилить здание на 2 части или сочетать здания с адресной точкой внутри здания. Поддержка рендеров и конверторов гарантирована.

В Петербурге удобно использовать addr:housenumber=312/982, потому что так пишут на табличках, и так адресуют дома, с дробями. При этом addr:street+addr:housenumber определяют основной адрес, а части номера с addr:street и addr:street2 — половинки адреса для случаев, когда кто-то забывает про дробь. В ргис тоже записывают дроби, конечно же.

А зачем городить костыльную схему, которая свойства объекта выносит на левую точку? addr:street2 поддерживать вообще не нужно, а для addrN нужно дописать пару строк кода на чём бы там оно ни было.

Уличные отношения ещё не выпилены из базы?

Мы не маппим под рендеры, тем более что поддержка нужной фичи тривиальна. То что вы названи - два невменяемых варианта, потому что дом с несколькими адресами - одна сущность, и второй адрес - такое же его свойство как и первый.

В Краснодаре дробные номера домов я видел только в Кадастровой карте. По жизни имеем угол здания, на одной стене адрес по одной улице, на другой стене - адрес по второй улице.

Вопрос решается патчами на mkgmap и osm2mp. У меня не получилось. Получилось только сделать громоздкий препроцессор, дублирующий объекты если у него несколько адресов, но работает он почти сутки на Россию. Если хотя бы эти два конвертора будут поддерживать схему addr{x}: то я только за.

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

Так вот:

  • города, в которых существует понятие “угловые дома”. Великие Луки, Санкт-Петербург для примера. На табличках так и пишут номер дома через дробь, по одной улице 1/2, по второй - 2/1.
  • города, в которых не существует понятия “угловые дома”. Например, любой город в Беларуси, и похоже, что Краснодар. На стенах висят номера дома по каждой улице без указания дроби. В официальных документах каждому дому соответствует только один адрес, остальные висят просто для красоты.

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

За обитателей городов первого типа пусть выскажется кто-нибудь другой.

Мне вообще-то всё равно, главное - чтобы порядок был) Как вариант - основной адрес тегами (пусть даже 27/75 в Петербурге), а addr:streetN и внутренние точки равносильны (можно даже ботом переносить с одного на другое). Только решить, что важнее. Пусть, например приоритетна информация на точках (так как проще поддерживаются), а там, где их нет - пусть addr:n работают. Резать - зло, когда не соответствует действительности)

Идиотизмом кажется что кто-то придумывает какие-то разные типы городов и с потолка “однозначно говорит” что свойство объекта должно с какого-то перепуга стать отдельным объектом. Более основной адрес, если вы какой-то таковым считаете, просто используется в качестве addr:*.

Точки - только костыли для поиска - всех, особенно дальнезабугорных, поддерживать addrN не заставишь, как не старайся… Как было упомянуто, это не всегда тривиально. А по хорошему нужны релейшены, ибо дублирование - зло. ))

Почему это? Это ничем не хуже любых других новых тэгов, которые каким-то образом появляются и начинаю поддерживаться.

Попробуйте) Как заработает всюду - точки снесём и ничего не потеряем. Просто и прагматично. Тогда давайте считать главной информацию на addr:n.

В НН 2-е адреса конвертируются, просто патчем конфигурации osm2mp.

navitel.yml:

--- taglist
---
...
street2:        [ addr2:street, addr:street2, addr:street ]
house2:         [ addr2:housenumber, addr:housenumber2, addr:housenumber ]

nodes-navitel.yml:

- condition:
    - or:
        - addr2:street = *
        - addr:street2 = *
        - addr2:housenumber = *
        - addr:housenumber2 = *
  action:
    - action: write_poi
      type: 0x2800
      contacts: yes
      Label: 
      StreetDesc: %street2
      HouseNumber: %house2

Зачем? Я лучше напишу препроцессор и пропатчу конверторы. Мы всё равно всё подо всё сами собираем.

с street2/housenumber2 надо осторожнее, потому что в первое пишут вторую улицу, а во второе альтернативные варианты написания номера дома. Вообще от первого лучше отказаться, потому что смысла вторая улица в адресе по первой не несёт (должен быть второй адрес).

Могу согласиться, но что же такое “вторая улица”? Просто любопытно.

Я-то за. Только как насчёт OsmAnd, OruxMaps & mapsforge, поиска на главной и т. д.?
Авторасстановка точек или addrN (без разницы, чего по чему) решила бы эту проблему.