Мультиязычные адреса

Об этом есть пропозал?

Ещё вариант обозначения множественных адресов вроде ул. Садовая, 7 / ул. Парковая, 22 :
На полигон домика вешаем тег addr:housenumber=7 и включаем его в релейшен ул. Садовой.
На контуре полигона домика вешаем точку с тегами building=yes, addr:housenumber=22 и включаем его в релейшен ул. Парковая.
Если в доме есть POI, размещаем их внутри полигона домика. При этом POI получают адрес из тегов полигона здания и релейшена улицы
(ул. Садовая, 7).

Так что если таксист с навигатором будет искать ул. Садовая, 7 - навигатор приведёт к домику.
если будет искать ул. Парковая, 22 - приведёт туда же.
А если будет искать по названию POI, то какая разница по какому из двух адресов он его найдёт, если это один и тот же дом.

andriano, ну ты, ей богу, как вчера родился… Все это уже по пятому кругу предлагается, обсасывается и отвергается…

:facepalm: видимо только тебе непонятно, что убирать name:* надо с тех веев, которые уже собраны в адресный street. На остальных пусть пока остается.

То, что ты описал и есть “смазка”, позволяющая впихнуть один билдинг в два разных стрита. Только накладные расходы в твоем случае выше. И профит выходит отрицательный.

P.S. А ты точно программист?

Это поломает конвертацию у тех, кто не поддерживает адресные отношения. Т.е. на данный момент у большинства.

по моему они будут только рады тому, что не придется навешивать дополнительные условия по вычислению дублей.

Нет, потому что это (как и все схемы с отношениями, пока) не позволяют указать какой адрес главный. И это зверский overcomplication несовместимый с реальным миром.

Первую проблему можно было бы решить так: на каждый дом создаётся одно отношение “набор адресов”, а внутри него уже что-то из существующих схем - проще всего та что с номером дома в role, но можно и тот ад, что ты предложил. Главное, что адреса в таком случае будут упорядочены.
Вторую решить сложнее, потому что нет, мы не можем просто взять и перейти на такие сложности для самых базовых объектов на карте - как минимум, нужна полная поддержка во всех редакторах.
Без решения обеих проблем адресные отношения использовать нельзя.

К сожалению, без отношений полного решения тоже нет. addr:street можно матчить с улицей (дабы выбрать оттуда нужные name:*), но это не работает для адресации по не-улицам. Можно матчить и с place, но и place может не быть (кстати, использования addr:place тут поможет тем, что ускорит поиск). Но на практике непокрытыми остаётся такое незначительное количество случаев, что им можно либо пренебречь (оставив адрес на одном языке), либо исправить добавлением условно-фейкового place, либо добавлением addr:place:{lang} только для таких объектов. Затраты и возможные проблемы от этого на порядки меньше любых извращений с отношениями.

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

А моё предложение постом выше? http://forum.openstreetmap.org/viewtopic.php?pid=279208#p279208
Тот адрес, который на тегах полигона домика, а не на точке - тот и главный.

Так стоит применять схему с отношением хотя бы для домов с одним адресом, которых вообщем-то 98% ?

У нас в Украине схема с отношениями широко применяется и рекомендована к использованию.
Но вообще-то мне не нравится такой разнобой со схемами. Интересно, а что по этому поводу думают в DWG?

Немножко про Беларусь.

Дом линкуется к улице по addr:street=name + ближайшее расстояние.
name:* лежат на линии улицы, в доме - только addr:street.
Если в доме несколько адресов, то адреса стоят на точках внутри зданий и линкуются аналогично.

Как это работает, можно посмотреть по указателю вверху карты, например, на http://openstreetmap.by/?zoom=18&lat=53.898315&lon=27.556999 - попереключайте языки, чтобы увидеть разные адреса на русском-английском-белорусском.

Попытки решать это как-то иначе (через сложные релейшены, тегами addr:street:*) в целом показали свою неэффективность.

Но почему тогда при конвертации не подхватываются name:ru с тегов линий улицы, а берётся значение addr:street на том языке, на котором оно написано?

Я имел в виду вот это http://www.openstreetmap.org/browse/relation/81697
a1 - Страна

a6 - улица с домами

Структурированная схема, готовая для конвертации, с name:*
Можно про нее поподробнее, и функции препроцесорра который, насколько я знаю, ее обрабатывает перед конвертацией в MP

Точки даже рассматривать не стоит.

Нет. Во-первых, иметь две схемы нельзя, во-вторых, сложность никуда не девается.

Это не решение проблемы, а уход от нее.
Адреса - объективно у дома, а не у точек внутри него. У нас же получается, что у одного объекта все равно не может быть двух разных адресов, а разные адреса - у разных объектов (у полигона и у точки).

Это нелогично: правило должно быть одно - общее.
Это во-первых.
А во-вторых, чем тег name:* отличается от других тегов, что убирать нужно именно его?
И что делать в случае, когда улица обозначена hw=residental, а в отноршении - она же hw=primary?

Выше чем где? В варианте с точкой внутри дома с самостоятельным адресом?
Система адресации в первую очередь должна быть логичной и только после этого компактной.
Правильно надо расставлять приоритеты. Иначе вместо “улица Ленина” нужно писать исключительно “ул. Ленина”, а то иначе “профит отрицательный”.

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

Мне кажется это неверно, т.к. направление связей обратное тому, которое должно быть. Адрес должен ссылаться на дом, а не дом на список адресов.

Мне, кстати, идея эта нравится, увы у нее на сегодняшний день совершенно неудовлетворительная реализация - без служебного слова в role - что не позволяет отделить адреса от прочих ролей.

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

Как в отношение вообще попало hw= ?
Что-то я пролестнул назад и не нашел объяснения чем плохо если указать в роли для дома “1” в одном отношение (главная улица для дома) и “2” или пусто в другом (второстепенные и прочие дублирующие адреса) ?

Это надо спрашивать у того, кто туда его поместил. Могу лишь отметить, что это достаточно распространенная практика.

На сегодняшний момент неофициально подразумевается, что если в роли стоит цифра “1”, то это значит “дом номер один”.
Проблема здесь в том, что адрес не обязан быть числом, поэтому не существует формального алгоритма способного определить, что значение роли является именно адресом, а не чем-то иным.
По-хорошему должно быть что-то вроде “role=bno:123a литер Ц корпус 11 строение 8”, где “bno:” - служебное слово для отличия адресов от всего остального.

Это предположение неверно.

Это неверно. Потому что на практике есть один главный адрес + (десяток неофициальных) * (десяток разных написаний), и все они используются.
Главный адрес надо писать на доме в рендерах и именно его использовать там, где поддерживается только один адрес. Но дом должен искаться и по любому из остальных адресов.

На самом деле связь направлена в обе стороны. Но мы указываем только одну, и если другую можно из неё восстановить, какую именно использовать - непринципиально.

Тэги, тэги. Поэтому альтернативы карлсруэ и нет.