You are not logged in.

#51 2012-10-02 07:57:43

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 8,482

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

Что за множественные адреса ? Что мешает создать два отношения, где члены одни и те же объекты ?

Offline

#52 2012-10-02 08:17:54

dimonster
Member
Registered: 2012-07-08
Posts: 1,501

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

Что мешает создать два отношения, где члены одни и те же объекты ?

Создать-то можно, но как их будет обрабатывать конвертор?
Сейчас конвертор будет делать так: обработает один релейшен, потом обработает другой релейшен. В результате на домике останется только одно название улицы (из того релейшена, который был обработан последним). А потом конвертер обработает все addr:street и название улицы останется из addr:street. И пойдут лесом ваши мультиязычные названия  sad

Множественные адреса (кстати, какой дурак их придумал?) можно обозначать двумя (тремя, четырьмя,...) точками с тегом building=yes и addr:housenumber=*. Точки ставить на контуре домика со стороны соответствующих улиц. Потом точки включить в соответствующие релейшены. Да, это "костыль". Особенно феерично будет прописывать в таком доме номера подъездов sad

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,482

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

Да, косяк. Тогда стоит использовать гибрид. Где в отношении в роли писать порядковый номер N, а на доме как и в одном из вариантов addN:=*.

Offline

#55 2012-10-02 09:48:43

dimonster
Member
Registered: 2012-07-08
Posts: 1,501

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

Да, с двойными адресами без пол-литры не разберёшься smile

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

Offline

#56 2012-10-02 09:49:40

ikz
Member
From: Тартария, Набережные Челны
Registered: 2009-09-18
Posts: 942

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

freeExec, ну есть и более чумовой вариант smile Вообще отказаться от addr:housenumber, а номер дома записывать в отношение, в роль дома как house:NN.

dimonster wrote:

Да, с двойными адресами без пол-литры не разберёшься smile

Двойные фигня. Есть и тройные. А с учетом навителовского варианта адресации можно прописать и до четырех адресов на один билдинг.

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: Мультиязычные адреса

Сопоставление идет

Почему-то не идёт sad
Имеем домик 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: Мультиязычные адреса

dimonster wrote:

А с учетом навителовского варианта адресации можно прописать и до четырех адресов на один билдинг.

Это как? Там же вроде "один объект - один адрес"?

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

Offline

#61 2012-10-02 15:56:27

dimuzz
Member
From: Екатеринбург
Registered: 2009-09-10
Posts: 1,843

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

liosha wrote:

Отсюда вопрос: как лучше обозначать локализованные адреса?

Имхо, все-таки собирать в отношение, аналогично 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: Мультиязычные адреса

ikz wrote:

Все name:* на веях - ф топку. addr:street туда же.
Ботом регулярно приводить улицы и адреса к данному виду.

Далеко не все веи входят в релейшны. Потому: предложенное - вандализм.
По хорошему нужно вводить в ОСМ новую сущность - объект, и освобождать узлы, пути и отношения от несвойственных им функций (в частности, от всех тегов).

Offline

#63 2012-10-02 16:36:09

andriano
Member
Registered: 2009-06-15
Posts: 1,667

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

dimonster wrote:

Что мешает создать два отношения, где члены одни и те же объекты ?

Создать-то можно, но как их будет обрабатывать конвертор?
Сейчас конвертор будет делать так: обработает один релейшен, потом обработает другой релейшен. В результате на домике останется...

Ну, если на выходе должен быть изначально "кривой" формат, в котором адрес не привязывается, а присваивается "домику", то - да.
Но это проблема не ОСМ, а того кривого формата, в который конвертируются ОСМ данные.

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

Нет, нужно изначально проектировать структуру данных так, чтобы не было ограничения "один объект - один адрес".

Offline

#64 2012-10-02 16:44:20

andriano
Member
Registered: 2009-06-15
Posts: 1,667

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

ikz wrote:

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: Мультиязычные адреса

andriano wrote:

По хорошему нужно вводить в ОСМ новую сущность - объект

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

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,787

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

ikz wrote:

убирать name:* надо с тех веев, которые уже собраны в адресный street

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

Offline

#69 2012-10-02 19:34:45

RusFox
Member
From: С-Пб
Registered: 2012-06-05
Posts: 469
Website

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

Sergey Astakhov wrote:

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

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


Информация для всех... Даром... И пусть никто не уйдет обиженным!
WEB-анализатор треков | Interactive map for Zabbix

Offline

#70 2012-10-03 04:52:57

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

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

andriano wrote:

Отнюдь.
Нужно просто понять, что адрес - это самостоятельная сущность.
Итак:
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: Мультиязычные адреса

Santacloud wrote:
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,482

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: Мультиязычные адреса

Marych73 wrote:

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

Board footer

Powered by FluxBB