не работает адресный поиск. Почему?

я говорю об адресном поиске, который в разделе “Поиск” на странице http://openstreetmap.org
Впрочем, думаю, что нашел ответ:
http://wiki.openstreetmap.org/wiki/Nominatim/FAQ#Why_doesn.27t_Nominatim_process_addr:.2A_tags_on_buildings

Видимо, с первым релейшном мне просто повезло.
А насчет

К примеру, на конвертированых в Навителовский формат картах ОСМ успешно ищутся дома по этому способу адресации

Я для себя написал скриптик:
http://kibergus.su/node/44
Он парсит выгруженный osm файл и по релейшенам прописывает Карлсруэ. Соответсвенно я прописываю удобные мне релейшены, а затем автоматически добавляю теги, которые поймут всякие конвертеры.

Э-э-э, при чем здесь Карлсруэ? Насчет relation’а - неудобное, неподдерживаемое, бесполезное усложнение.

Неудобство - субъективное понятие. Бесполезность - ещё более субъективное.

Пока я вижу, что карты для Навитела на основе ОСМ работают адекватно в вопросе поиска по адресу на основе релейшна (не исключаю, конечно, что это заслуга добрых людей, занимающихся конвертацией). Поэтому считаю relation:type=street вполне поддерживаемым “усложнением”

Вот когда обнаружишь, что улицу переименовали, а половина домов имеет в тэге addr:street какой-нить бардак или вообще не имеет этого или половины других тэгов - передумаешь.

Зато неподдерживаемость - объективное, а из него остальное и следует. Объясняю:

  1. OSM как база удобна как раз использованием примитивных элементов, а это полигоны и точки с тэгами. Relation’ы нужны только чтобы отметить то, что обычными тэгами принципиально нельзя. При этом они ненаглядны, их неудобно редактировать (а где-то нельзя) и сложно обрабатывать.
  2. Насчет переименований улиц - во-первых, называйте их сразу нормально без сокращений, не надо будет ничего переименовывать. В Москве эта схема вроде победила наконец. Во-вторых, к вашим услугам OSM Inspector, который показывает все дома с ненайденными улицами.
  3. Ни от чего они не спасают, зато добавляют проблем. Очень немного людей будут добавлять дома в эти отношения, а значит всё равно надо смотреть в OSM Inspector. Зато не зная о relation’ах кто-то исправит тэги на домах и помойка поболе получится вплоть до разных улиц в relation и на доме. Большой вопрос, ругнется ли на это inspector, будут ли с этим одинаково работать все клиенты и не выстрелит ли это когда кто-нибудь удалит relation, нечаянно, например. Итого, наличие информации в двух местах не позволяет верить ни одному.
  4. Если актуальные адреса будут в relation’е, более нельзя вытащить нужные дома одним запросом, нельзя даже банально в josm подсветить дом без улицы другим цветом.

Выход - робот, который запихивает дома с addr:street в соответствующие relation’ы и переносит addr:street на члены relation’а для непротиворечивости информации (а заодно херит все исправления улиц, сделанные людьми которым побоку эти ваши отношения), а также показывает список всех домов, не входящих в отношения, чтобы их можно было починить.

А теперь главный вопрос - зачем вся эта сложность, когда достаточно только последнего (статистики по ненайденным домам), и это уже есть в виде как минимум OSM Inspector и кладро-окатовской статистики. KISS, короче.

Неподдерживаемость - не проблема схемы. Карлсруэ тоже сначала никем не поддерживалась, да.

Насчет переименований улиц - во-первых, называйте их сразу нормально без сокращений, не надо будет ничего переименовывать.
Это вы будете сотне леммингов рассказывать. А вот хранить в базе сотни дублей строки “проспект Ленина” - плохо.

Неподдерживаемость не всмысле “никто не поддерживает”, а в смысле “невозможно поддерживать”.

Да что за Карлсруэ-то?

Как будто хранить сто один лучше.

Лолшто? ^…^

http://wiki.openstreetmap.org/wiki/RU:Key:addr

“Брежнев беседует с внуком, спрашивает: - Кем ты хочешь стать, когда вырастешь? - Генеральным секретарем! - А зачем нам два генеральных секретаря?..”

Куча addr:* в каждом доме.

Лолто, я по-моему все подробно расписал.

Почему Карлсруэ?

Почему addr:street нельзя убирать с домов я тоже написал.

Неубедительно, профессор, очень даже неубедительно.

Дома дёргать одним запросом можно и при релейшнах. Да, есть заморочки с домами с двумя и более адресами - но эти же заморочки есть и в схеме Карслруэ.

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

Нет, как минимум двумя.

Показываю один раз

Номер relation’а по названию улицы вы телепатически узнаете?

Если ты у OSM спросишь addr:street=“Центральная”, то получишь такие улицы во всей нашей стране, а то и в какой-нибудь соседней. Даже если ты будешь запрашивать такое в moscow.osm - найдёшь две улицы. Тебе тоже не хватит одного запроса.

API OSM не предназначено для уменьшения числа запросов для извлечения информации. Не нужно под него подстраиваться из-за разовых операций.

С этой стороны relation’ы ничем не лучше.

Количество запросов просто свидетельствует об усложнении схемы.

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

Нет. Почему - я написал.

Вы расписали следствия неподдерживаемости, которые и так всем очевидны. А я спрашивал, с чего вы взяли, что “невозможно поддерживать”. Уж не с того ли, что существующие инструменты не поддерживают удобное редактирование таких отношений? Я вас сразу предупреждаю - это грубейшая логическая ошибка. :3

http://wiki.openstreetmap.org/wiki/Proposed_features/House_numbers/Karlsruhe_Schema