Э-э-э, при чем здесь Карлсруэ? Насчет relation’а - неудобное, неподдерживаемое, бесполезное усложнение.
Неудобство - субъективное понятие. Бесполезность - ещё более субъективное.
Пока я вижу, что карты для Навитела на основе ОСМ работают адекватно в вопросе поиска по адресу на основе релейшна (не исключаю, конечно, что это заслуга добрых людей, занимающихся конвертацией). Поэтому считаю relation:type=street вполне поддерживаемым “усложнением”
Вот когда обнаружишь, что улицу переименовали, а половина домов имеет в тэге addr:street какой-нить бардак или вообще не имеет этого или половины других тэгов - передумаешь.
Зато неподдерживаемость - объективное, а из него остальное и следует. Объясняю:
- OSM как база удобна как раз использованием примитивных элементов, а это полигоны и точки с тэгами. Relation’ы нужны только чтобы отметить то, что обычными тэгами принципиально нельзя. При этом они ненаглядны, их неудобно редактировать (а где-то нельзя) и сложно обрабатывать.
- Насчет переименований улиц - во-первых, называйте их сразу нормально без сокращений, не надо будет ничего переименовывать. В Москве эта схема вроде победила наконец. Во-вторых, к вашим услугам OSM Inspector, который показывает все дома с ненайденными улицами.
- Ни от чего они не спасают, зато добавляют проблем. Очень немного людей будут добавлять дома в эти отношения, а значит всё равно надо смотреть в OSM Inspector. Зато не зная о relation’ах кто-то исправит тэги на домах и помойка поболе получится вплоть до разных улиц в relation и на доме. Большой вопрос, ругнется ли на это inspector, будут ли с этим одинаково работать все клиенты и не выстрелит ли это когда кто-нибудь удалит relation, нечаянно, например. Итого, наличие информации в двух местах не позволяет верить ни одному.
- Если актуальные адреса будут в relation’е, более нельзя вытащить нужные дома одним запросом, нельзя даже банально в josm подсветить дом без улицы другим цветом.
Выход - робот, который запихивает дома с addr:street в соответствующие relation’ы и переносит addr:street на члены relation’а для непротиворечивости информации (а заодно херит все исправления улиц, сделанные людьми которым побоку эти ваши отношения), а также показывает список всех домов, не входящих в отношения, чтобы их можно было починить.
А теперь главный вопрос - зачем вся эта сложность, когда достаточно только последнего (статистики по ненайденным домам), и это уже есть в виде как минимум OSM Inspector и кладро-окатовской статистики. KISS, короче.
Неподдерживаемость - не проблема схемы. Карлсруэ тоже сначала никем не поддерживалась, да.
Насчет переименований улиц - во-первых, называйте их сразу нормально без сокращений, не надо будет ничего переименовывать.
Это вы будете сотне леммингов рассказывать. А вот хранить в базе сотни дублей строки “проспект Ленина” - плохо.
Неподдерживаемость не всмысле “никто не поддерживает”, а в смысле “невозможно поддерживать”.
Да что за Карлсруэ-то?
Как будто хранить сто один лучше.
Лолшто? ^…^
http://wiki.openstreetmap.org/wiki/RU:Key:addr
“Брежнев беседует с внуком, спрашивает: - Кем ты хочешь стать, когда вырастешь? - Генеральным секретарем! - А зачем нам два генеральных секретаря?..”
Куча addr:* в каждом доме.
Лолшто? ^…^
Лолто, я по-моему все подробно расписал.
Почему Карлсруэ?
“Брежнев беседует с внуком, спрашивает: - Кем ты хочешь стать, когда вырастешь? - Генеральным секретарем! - А зачем нам два генеральных секретаря?..”
Почему addr:street нельзя убирать с домов я тоже написал.
Почему addr:street нельзя убирать с домов я тоже написал.
Неубедительно, профессор, очень даже неубедительно.
Дома дёргать одним запросом можно и при релейшнах. Да, есть заморочки с домами с двумя и более адресами - но эти же заморочки есть и в схеме Карслруэ.
Неубедительно, профессор, очень даже неубедительно.
Давайте по пунктам, только без “мне это не нужно, значит не нужно никому”.
Да, забыл написать, что вы их и не уберёте.
Дома дёргать одним запросом можно и при релейшнах.
Нет, как минимум двумя.
Если ты у OSM спросишь addr:street=“Центральная”, то получишь такие улицы во всей нашей стране, а то и в какой-нибудь соседней. Даже если ты будешь запрашивать такое в moscow.osm - найдёшь две улицы. Тебе тоже не хватит одного запроса.
API OSM не предназначено для уменьшения числа запросов для извлечения информации. Не нужно под него подстраиваться из-за разовых операций.
Если ты у OSM спросишь addr:street=“Центральная”, то получишь такие улицы во всей нашей стране, а то и в какой-нибудь соседней. Даже если ты будешь запрашивать такое в moscow.osm - найдёшь две улицы. Тебе тоже не хватит одного запроса.
С этой стороны relation’ы ничем не лучше.
API OSM не предназначено для уменьшения числа запросов для извлечения информации. Не нужно под него подстраиваться из-за разовых операций.
Количество запросов просто свидетельствует об усложнении схемы.
Количество запросов просто свидетельствует об усложнении схемы.
Отнюдь нет. Она сложна в поддерживании текущими инструментами, что действительно серьёзная проблема. Но в остальных отношениях по меньшей мере на уровне улиц она более чем правильна.
Отнюдь нет. Она сложна в поддерживании текущими инструментами, что действительно серьёзная проблема. Но в остальных отношениях по меньшей мере на уровне улиц она более чем правильна.
Нет. Почему - я написал.
Лолто, я по-моему все подробно расписал.
Вы расписали следствия неподдерживаемости, которые и так всем очевидны. А я спрашивал, с чего вы взяли, что “невозможно поддерживать”. Уж не с того ли, что существующие инструменты не поддерживают удобное редактирование таких отношений? Я вас сразу предупреждаю - это грубейшая логическая ошибка. :3
Почему Карлсруэ?
http://wiki.openstreetmap.org/wiki/Proposed_features/House_numbers/Karlsruhe_Schema
нельзя даже банально в josm подсветить дом без улицы другим цветом.
Ну, это вы бросьте. Вот вам все здания без адресов в релейшенах:
(building) -child (type:relation type=address)
Вы расписали следствия неподдерживаемости, которые и так всем очевидны. А я спрашивал, с чего вы взяли, что “невозможно поддерживать”. Уж не с того ли, что существующие инструменты не поддерживают удобное редактирование таких отношений?
Нет. С того, что существуют инструменты, поддерживающие другие, более простые, схемы.