Известная вещь. Насколько я помню, проблема возникает из-за того, что в той версии конвертера, которая сейчас используется для создания карт для СитиГИДа, addr:suburb на домах никак не обрабатывается (addr:suburb=Район + name=Улица на линии улицы превращается в name=“Улица (Район)”, а addr:suburb=Район + addr:street=Улица на доме не превращается в addr:street=“Улица (Район)”. При этом вроде бы в текущей версии osm2mp такой проблемы нет (по крайней мере, я когда-то обращал внимание liosha-ы на это - он писал, что в актуальной на тот момент версии ошибки уже нет; попозже постараюсь сам проверить).
Подскажите что можно придумать/сделать?
Обнаружил в Словакии массу домиков с номерами, но без улицы. При ближайшем рассмотрении выяснилось, что в небольших поселках и деревнях у них адресация без улиц.
Вот пансионат Путник http://www.openstreetmap.org/browse/way/58777529
На его сайте адрес указан без улицы, поселок Червены Клаштор, д.93 http://www.penzionpltnik.sk/?lang=ru&page=index
Как правильно замапить такие домики, чтобы и аборигены не возмущались, и в СитиГиде был адресный поиск?
Кирилл, твое мнение?
Раз адрес “поселок Червены Клаштор, д. 93”, на доме должно быть “addr:place=Червены Клаштор + addr:housenumber=93”. Но в СитиГИДе пока такие дома находиться адресным поиском всё равно не будут.
Использование одного тега addr:city не позволяет отличить “Червены Клаштор, “улица есть, пользователь её не указал - улицу нужно добавить”, дом 93” от “Червены Клаштор, дом 93”
Угу, а использование одного addr:housenumber не позволяет отличить “номер дома есть, пользователь его не указал”, от “дом без номера”. А использование одного name не позволяет отличить “название есть, пользователь его не указал”, от “нечто безымянное”. А использование одного natural=wood не позволяет отличить “лес есть, пользователь его не нарисовал”, от “тут нет леса”.
Как будем эти случаи разруливать?
liosha,
Внесение некоторой избыточности в данные, чтобы обнаруживать и исправлять ошибки - это просто основа теории информации, и я не понимаю почему ты с этим споришь.
Адресация - одна из самых важных вещей, и контроль ее целостности так или иначе нужен. Пропущенный тег addr:street - очень типичная ситуация, ее крайне желательно отслеживать.
–
То что СГ не понимает тип адресации “номер привязан прямо к НП” - это безобразие, я этот вопрос поднимаю при каждом удобном и неудобном случае.
Во-первых, я спорю не с теорией, а с реализацией (более идиотский вариант, чем addr:place, придумать очень сложно). Во-вторых, нельзя считать ошибкой пропущенную НЕОБЯЗАТЕЛЬНУЮ информацию.
Ну почему необязательную?
Ведь если в одном НП для адресов используют улицы, а в другом нет - то как-то нужно эту ситуацию объяснить конвертеру/валидатору?
Иначе отсутствие addr:street там где оно нужно никак будет не отследить.
Для этого нужно как-то отличать места, где оно нужно, от мест, где оно не нужно.
Но такие вещи нужно держать отдельно, а не засорять базу фиктивными данными.
Конвертеру такие вещи должны быть фиолетовы: он должен обрабатывать те данные, что ему дают, ничего не придумывая. Если в данных есть дом без указания улицы - то это дом без улицы.
addr:street=place(если по НП адресация)|no(если не по НП, но улицы нет), ну или suburb добавить, хотя я бы остановился только на place/no, а suburb включить в place. Для программ, которые очень хотят наличие “соответствующей улицы с тегом hw=<не ниже residential>” - проблему не решит, наверное (хотя, ни кто не мешает сгенерировать пару искусственных с access=no “отрезков”), но для тех, кому она не обязательна - облегчит жизнь.
Т.к. “умолчательно” считаем наличие тега улицы обязательным.
Кто так не считает - тег addr:street могут игнорировать.