You are not logged in.
- Topics: Active | Unanswered
Announcement
#51 2012-10-02 07:57:43
- freeExec
- Moderator
- From: Ульяновск,Модератор всех слоёв
- Registered: 2012-07-31
- Posts: 8,460
Re: Мультиязычные адреса
Что за множественные адреса ? Что мешает создать два отношения, где члены одни и те же объекты ?
Offline
#52 2012-10-02 08:17:54
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Мультиязычные адреса
Что мешает создать два отношения, где члены одни и те же объекты ?
Создать-то можно, но как их будет обрабатывать конвертор?
Сейчас конвертор будет делать так: обработает один релейшен, потом обработает другой релейшен. В результате на домике останется только одно название улицы (из того релейшена, который был обработан последним). А потом конвертер обработает все addr:street и название улицы останется из addr:street. И пойдут лесом ваши мультиязычные названия
Множественные адреса (кстати, какой дурак их придумал?) можно обозначать двумя (тремя, четырьмя,...) точками с тегом building=yes и addr:housenumber=*. Точки ставить на контуре домика со стороны соответствующих улиц. Потом точки включить в соответствующие релейшены. Да, это "костыль". Особенно феерично будет прописывать в таком доме номера подъездов
Offline
#53 2012-10-02 08:38:21
- ikz
- Member
- From: Тартария, Набережные Челны
- Registered: 2009-09-18
- Posts: 942
Re: Мультиязычные адреса
freeExec при включении домика в два отношения, как понять, к какому отношению относится addr:housenumber? Номер дома без смазки в отношение не запихивается.
dimoster в случае с точками POI в здании лишатся адреса. И его (точнее их) надо будет прописывать везде - дублирование информации и огромное поле для ошибок.
И не всегда есть "сторона соответствующей улицы" - в НЧ дома собраны в стриты псевдорайонов, мне с какой стороны ставить точку?
Offline
#54 2012-10-02 09:37:41
- freeExec
- Moderator
- From: Ульяновск,Модератор всех слоёв
- Registered: 2012-07-31
- Posts: 8,460
Re: Мультиязычные адреса
Да, косяк. Тогда стоит использовать гибрид. Где в отношении в роли писать порядковый номер N, а на доме как и в одном из вариантов addN:=*.
Offline
#55 2012-10-02 09:48:43
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Мультиязычные адреса
Да, с двойными адресами без пол-литры не разберёшься
Кстати, в Навител они не поддерживаются. Костя Галичский рекомендует привязывать дом только к одной из улиц, а номер дома писать через дробь.
Offline
#56 2012-10-02 09:49:40
- ikz
- Member
- From: Тартария, Набережные Челны
- Registered: 2009-09-18
- Posts: 942
Re: Мультиязычные адреса
freeExec, ну есть и более чумовой вариант Вообще отказаться от addr:housenumber, а номер дома записывать в отношение, в роль дома как house:NN.
Да, с двойными адресами без пол-литры не разберёшься
Двойные фигня. Есть и тройные. А с учетом навителовского варианта адресации можно прописать и до четырех адресов на один билдинг.
Last edited by ikz (2012-10-02 09:52:55)
Offline
#57 2012-10-02 10:04:00
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Мультиязычные адреса
А с учетом навителовского варианта адресации можно прописать и до четырех адресов на один билдинг.
Это как? Там же вроде "один объект - один адрес"?
Offline
#58 2012-10-02 10:46:30
- dkiselev
- Member
- Registered: 2010-02-09
- Posts: 3,364
Re: Мультиязычные адреса
А в чем проблема то? Сопоставление идет по addr:street = name или addr:place = name. У улицы могут быть name:* Вроде между этими пунктами не возникает противоречий.
mail: dkiselev@osm.me skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!
Offline
#59 2012-10-02 12:18:03
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Мультиязычные адреса
Сопоставление идет
Почему-то не идёт
Имеем домик addr:street=Гагаріна вулиця и отрезки улицы с name=Гагаріна вулиця, name:ru=Гагарина улица.
После конвертации русскоязычной карты с помощью osm2mp имеем в базе улицу "Гагарина улица" без домов вообще и улицу "Гагаріна вулиця" с домами.
Offline
#60 2012-10-02 14:56:58
- dimuzz
- Member
- From: Екатеринбург
- Registered: 2009-09-10
- Posts: 1,843
Re: Мультиязычные адреса
А с учетом навителовского варианта адресации можно прописать и до четырех адресов на один билдинг.
Это как? Там же вроде "один объект - один адрес"?
Адрес на объект один, но объектов может быть несколько (точнее, сколько угодно). Дополнительные адреса навешиваются на (невидимые) надписи, которые также участвуют в адресном поиске.
Но это хорошо только для адресов зданий. POI так продублировать сложнее, их с одним адресом может быть много.
Offline
#61 2012-10-02 15:56:27
- dimuzz
- Member
- From: Екатеринбург
- Registered: 2009-09-10
- Posts: 1,843
Re: Мультиязычные адреса
Отсюда вопрос: как лучше обозначать локализованные адреса?
Имхо, все-таки собирать в отношение, аналогично street.
При этом name:* может как содержаться в самом отношении, так и ссылаться на внешний объект (возможно, фейковый), name которого соответствует нужной части адреса.
Например, отношение для addr:district может выглядеть так:
type=district
name=Запупырский район
name:en=Zapupyrskiy district
Члены отношения в роли address - либо города (тогда к полигонам городов неявно добавляется addr:district на нужном языке), либо непосредственно дома или какие-то другие адресуемые объекты (тогда name на нужном языке добавляется непосредственно к адресу объекта, независимо от вхождения в полигон НП).
Вместо набора name в самом отношении может использоваться ссылка на границу Запупырского района в роли district (предполагается, что граница имеет набор названий района name:*).
Возможна ссылка на фейковый объект (в роли district или label) с нужным набором имен.
Аналогично для region (addr:region) etc.
UPD: вроде бы больших накладных расходов такая схема не несет - достаточно одного члена отношения для простановки имен на нужном языке/языках при рендеринге/конвертации (или одного члена внешнего отношения для получения его списка имен).
Last edited by dimuzz (2012-10-02 16:09:42)
Offline
#62 2012-10-02 16:29:42
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: Мультиязычные адреса
Все name:* на веях - ф топку. addr:street туда же.
Ботом регулярно приводить улицы и адреса к данному виду.
Далеко не все веи входят в релейшны. Потому: предложенное - вандализм.
По хорошему нужно вводить в ОСМ новую сущность - объект, и освобождать узлы, пути и отношения от несвойственных им функций (в частности, от всех тегов).
Offline
#63 2012-10-02 16:36:09
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: Мультиязычные адреса
Что мешает создать два отношения, где члены одни и те же объекты ?
Создать-то можно, но как их будет обрабатывать конвертор?
Сейчас конвертор будет делать так: обработает один релейшен, потом обработает другой релейшен. В результате на домике останется...
Ну, если на выходе должен быть изначально "кривой" формат, в котором адрес не привязывается, а присваивается "домику", то - да.
Но это проблема не ОСМ, а того кривого формата, в который конвертируются ОСМ данные.
Множественные адреса (кстати, какой дурак их придумал?) можно обозначать двумя (тремя, четырьмя,...) точками...
Нет, нужно изначально проектировать структуру данных так, чтобы не было ограничения "один объект - один адрес".
Offline
#64 2012-10-02 16:44:20
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: Мультиязычные адреса
freeExec при включении домика в два отношения, как понять, к какому отношению относится addr:housenumber? Номер дома без смазки в отношение не запихивается.
Отнюдь.
Нужно просто понять, что адрес - это самостоятельная сущность.
Итак:
1. Дом в виде узла или вея.
2. Адрес по улице 4 в виде релейшна со ссылкой на 1 и номером дома.
3. Адрес по улице 5 в виде релейшна со ссылкой на 1 и номером дома.
4. Улица-релейшн, ссылающаяся на адрес-релейшн 2.
5. Улица-релейшн, ссылающаяся на адрес-релейшн 3.
Offline
#65 2012-10-02 18:11:25
- Santacloud
- Member
- Registered: 2012-03-15
- Posts: 331
Re: Мультиязычные адреса
По хорошему нужно вводить в ОСМ новую сущность - объект
Об этом есть пропозал?
Offline
#66 2012-10-02 18:16:09
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Мультиязычные адреса
Ещё вариант обозначения множественных адресов вроде ул. Садовая, 7 / ул. Парковая, 22 :
На полигон домика вешаем тег addr:housenumber=7 и включаем его в релейшен ул. Садовой.
На контуре полигона домика вешаем точку с тегами building=yes, addr:housenumber=22 и включаем его в релейшен ул. Парковая.
Если в доме есть POI, размещаем их внутри полигона домика. При этом POI получают адрес из тегов полигона здания и релейшена улицы
(ул. Садовая, 7).
Так что если таксист с навигатором будет искать ул. Садовая, 7 - навигатор приведёт к домику.
если будет искать ул. Парковая, 22 - приведёт туда же.
А если будет искать по названию POI, то какая разница по какому из двух адресов он его найдёт, если это один и тот же дом.
Offline
#67 2012-10-02 18:34:18
- ikz
- Member
- From: Тартария, Набережные Челны
- Registered: 2009-09-18
- Posts: 942
Re: Мультиязычные адреса
andriano, ну ты, ей богу, как вчера родился... Все это уже по пятому кругу предлагается, обсасывается и отвергается...
Далеко не все веи входят в релейшны. Потому: предложенное - вандализм.
:facepalm: видимо только тебе непонятно, что убирать name:* надо с тех веев, которые уже собраны в адресный street. На остальных пусть пока остается.
Нужно просто понять, что адрес - это самостоятельная сущность.
Итак: ...
То, что ты описал и есть "смазка", позволяющая впихнуть один билдинг в два разных стрита. Только накладные расходы в твоем случае выше. И профит выходит отрицательный.
P.S. А ты точно программист?
Last edited by ikz (2012-10-02 18:34:33)
Offline
#68 2012-10-02 18:41:56
- Sergey Astakhov
- Member
- From: St.Petersburg, Russia
- Registered: 2009-11-13
- Posts: 5,779
Re: Мультиязычные адреса
убирать name:* надо с тех веев, которые уже собраны в адресный street
Это поломает конвертацию у тех, кто не поддерживает адресные отношения. Т.е. на данный момент у большинства.
Offline
#69 2012-10-02 19:34:45
- RusFox
- Member
- From: С-Пб
- Registered: 2012-06-05
- Posts: 469
- Website
Re: Мультиязычные адреса
Это поломает конвертацию у тех, кто не поддерживает адресные отношения. Т.е. на данный момент у большинства.
по моему они будут только рады тому, что не придется навешивать дополнительные условия по вычислению дублей.
Информация для всех... Даром... И пусть никто не уйдет обиженным!
WEB-анализатор треков | Interactive map for Zabbix
Offline
#70 2012-10-03 04:52:57
- AMDmi3
- Member
- From: Москва
- Registered: 2009-08-12
- Posts: 3,315
Re: Мультиязычные адреса
Отнюдь.
Нужно просто понять, что адрес - это самостоятельная сущность.
Итак:
1. Дом в виде узла или вея.
2. Адрес по улице 4 в виде релейшна со ссылкой на 1 и номером дома.
3. Адрес по улице 5 в виде релейшна со ссылкой на 1 и номером дома.
4. Улица-релейшн, ссылающаяся на адрес-релейшн 2.
5. Улица-релейшн, ссылающаяся на адрес-релейшн 3.
Нет, потому что это (как и все схемы с отношениями, пока) не позволяют указать какой адрес _главный_. И это зверский overcomplication несовместимый с реальным миром.
Первую проблему можно было бы решить так: на каждый дом создаётся одно отношение "набор адресов", а внутри него уже что-то из существующих схем - проще всего та что с номером дома в role, но можно и тот ад, что ты предложил. Главное, что адреса в таком случае будут упорядочены.
Вторую решить сложнее, потому что нет, мы не можем просто взять и перейти на такие сложности для самых базовых объектов на карте - как минимум, нужна полная поддержка во всех редакторах.
Без решения обеих проблем адресные отношения использовать нельзя.
К сожалению, без отношений полного решения тоже нет. addr:street можно матчить с улицей (дабы выбрать оттуда нужные name:*), но это не работает для адресации по не-улицам. Можно матчить и с place, но и place может не быть (кстати, использования addr:place тут поможет тем, что ускорит поиск). Но на практике непокрытыми остаётся такое незначительное количество случаев, что им можно либо пренебречь (оставив адрес на одном языке), либо исправить добавлением условно-фейкового place, либо добавлением addr:place:{lang} только для таких объектов. Затраты и возможные проблемы от этого на порядки меньше любых извращений с отношениями.
Last edited by AMDmi3 (2012-10-03 05:04:47)
Offline
#71 2012-10-03 10:33:55
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: Мультиязычные адреса
andriano wrote:По хорошему нужно вводить в ОСМ новую сущность - объект
Об этом есть пропозал?
Надеюсь, что нет. (потому как его не должно быть - это не тот вопрос, который решается голосованием)
Offline
#72 2012-10-03 10:48:01
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Мультиязычные адреса
Нет, потому что это (как и все схемы с отношениями, пока) не позволяют указать какой адрес _главный_.
А моё предложение постом выше? http://forum.openstreetmap.org/viewtopi … 08#p279208
Тот адрес, который на тегах полигона домика, а не на точке - тот и главный.
Offline
#73 2012-10-03 10:54:08
- freeExec
- Moderator
- From: Ульяновск,Модератор всех слоёв
- Registered: 2012-07-31
- Posts: 8,460
Re: Мультиязычные адреса
Так стоит применять схему с отношением хотя бы для домов с одним адресом, которых вообщем-то 98% ?
Offline
#74 2012-10-03 11:43:05
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Мультиязычные адреса
У нас в Украине схема с отношениями широко применяется и рекомендована к использованию.
Но вообще-то мне не нравится такой разнобой со схемами. Интересно, а что по этому поводу думают в DWG?
Offline
#75 2012-10-03 12:24:22
- Komяpa
- Member
- From: Minsk
- Registered: 2009-04-14
- Posts: 1,323
- Website
Re: Мультиязычные адреса
1-Белорусская схема
Немножко про Беларусь.
Дом линкуется к улице по addr:street=name + ближайшее расстояние.
name:* лежат на линии улицы, в доме - только addr:street.
Если в доме несколько адресов, то адреса стоят на точках внутри зданий и линкуются аналогично.
Как это работает, можно посмотреть по указателю вверху карты, например, на http://openstreetmap.by/?zoom=18&lat=53 … =27.556999 - попереключайте языки, чтобы увидеть разные адреса на русском-английском-белорусском.
Попытки решать это как-то иначе (через сложные релейшены, тегами addr:street:*) в целом показали свою неэффективность.
world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]
Offline