You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#51 2010-12-20 14:54:09

Miroff
Member
Registered: 2010-01-26
Posts: 172

Re: 3D-моделирование в OSM

Уважаемые, не надо трогать мультиполигон. Семантика мультиполигона уже а) отработана б) поддерживается софтом в) стоит на плечах гигаонтов. Конкретно сейчас, если кто-то поменяет семантику мультиполигона допустив, что внешние границы могут касаться больше чем в одной точке, лично у меня отвалятся: GEOS, PostGIS (на той же библиотеке) и GeoJSON. Все это придется заменить собственными велосипедами только потому что кто-то "не видит проблемы".

Проблема с 3D маппингом в том, что семантика полигона building=yes не определена. Это линия фундамента, проекция здания на плоскость, что-то имеющее собственный адрес или что-то четвертое? Отсюда, совершенно непонятно, что должно остаться, а что можно менять.

Offline

#52 2010-12-20 15:04:35

Ilis
Member
From: Екатеринбург
Registered: 2009-05-24
Posts: 5,970

Re: 3D-моделирование в OSM

На всякий случай поддержу. У меня проблем нет, но стандарты -- это святое! Руки прочь!

Offline

#53 2010-12-20 16:00:17

metadenisik
Member
From: Stroitel, Izhevsk, Udmurtia
Registered: 2010-08-16
Posts: 346

Re: 3D-моделирование в OSM

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

С другой стороны нужно как-то это дело обозначать. Я согласен с тем, что должен быть один объект, который будет охватывать весь периметр, он и должен нести в себе все основные теги, и это должен быть полигон, лучше нулевой высоты. И уже на него сверху накладывать полигоны частей здания с указанием каких-то 3-х измерений, в соседней теме было заявлено, что их надо указывать как building:part. Нужно ли связывать building:part в единый building с помощью отношения? Нет, если речь идёт о  мультиполигоне.


Давайте порассуждаем вместе:
Существует 2 слоя.
1-й слой: двухмерная карта, на которой отображены все объекты в плоскости.
2-й слой: третье измерение, которое является атрибутом первого, т.е. зависимым от первого слоя слоем. 2-й слой не может повлиять на 1-й никаким образом, точнее, не должен влиять. При этом, при изменении 1-го слоя, 2-й слой должен быть изменён (передвинуть объекты, уточнить и т.д.), но не всякое изменение 1-го слоя должно касаться 2-го слоя (например, я добавил теги адреса).
Таким образом, связь 1-й слой → 2-й слой должна быть факультативной, т.е. необязательной. Раз связь необязательна, её можно не делать. Значит и связывать части здания в одно здание не надо, чтобы не смешивать разные слои.


Исходя из этого, я предлагаю следующую концептуальную схему:
0. Так как работы со слоями в OSM нет, считать слои виртуальными, т.е. их физически создавать не нужно, а лишь подразумевать.
1. Основной виртуальный слой OSM (назовём его виртуальный слой №1) не трогать, как рисовали без разноэтажности и 3d, так и рисуем дальше. Любые наши изменения для обозначения разноэтажности и 3d не должны касаться и быть легко устранимыми, выпиливаемыми и не влиять ни коем образом на этот слой.
2. Так как править основной виртуальный слой для добавления данных о 3d мы не имеем права, рисуем для этого в слое №2, назовём его виртуальный слой №2 "высотный".
3. Слой №1 и слой №2 "высотный" не должны иметь общих элементов, тегов, точек, отношений, связей и т.д., чтобы не допустить виляния слоя №2 "высотный" на слой №1. По сути, слой №2 таким образом становится лишь атрибутивным и необязательным.
4. То, что рисуем в слое №2 не должно иметь тегов и значений, используемых в слое №1, чтобы не вызвать путаницу между слоями. Соответственно, то что в слое №2 не должно рендериться в стандартных рендерах вообще.
5. Рендер слоя №2 должен осуществляться только альтернативными рендерами.

Техническая реализация данной концептуальной схемы:
1. Слой №2 предпочтительно хранить в отдельной БД,либо, в крайнем случае, виртуально ограничивать его применение.
2. В слое №2 должны быть теги, не используемые в слое №1
3. В слоях №1 и №2 не должно быть общих элементов, в т.ч. отношений и точек.
4. По хорошему, слой №2 должен строиться как отдельный проект, основанный на данных OSM, таким образом будет установлена односторонняя связь от слоя №1 к слою №2.


На высоте 5000 метров

Offline

#54 2010-12-20 16:02:50

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

Re: 3D-моделирование в OSM

metadenisik wrote:

Слой №2 предпочтительно хранить в отдельной БД ... По хорошему, слой №2 должен строиться как отдельный проект

Воистину так. Как бы ещё это до людей донести...

Offline

#55 2010-12-20 16:05:04

metadenisik
Member
From: Stroitel, Izhevsk, Udmurtia
Registered: 2010-08-16
Posts: 346

Re: 3D-моделирование в OSM

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


На высоте 5000 метров

Offline

#56 2010-12-20 16:17:31

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,808

Re: 3D-моделирование в OSM

metadenisik wrote:

Таким образом, связь 1-й слой → 2-й слой должна быть факультативной, т.е. необязательной. Раз связь необязательна, её можно не делать.

Данные имеют свойство устаревать. Если синхронизации не будет - отдельная база довольно быстро превратится в помойку.

liosha wrote:
metadenisik wrote:

Слой №2 предпочтительно хранить в отдельной БД ... По хорошему, слой №2 должен строиться как отдельный проект

Воистину так. Как бы ещё это до людей донести...

Разговоры разговаривать тут бесполезно. Будет отдельный живой проект - станут пользоваться им. Не будет - будут пользоваться тем, что есть.

Offline

#57 2010-12-20 16:23:06

wildMan
Member
From: Minsk
Registered: 2008-03-05
Posts: 509

Re: 3D-моделирование в OSM

Sergey Astakhov wrote:

Разговоры разговаривать тут бесполезно. Будет отдельный живой проект - станут пользоваться им. Не будет - будут пользоваться тем, что есть.

да-да. несмогли дотерпеть до туалета - насрали посреди площади.


--
OSMF BY Team

Offline

#58 2010-12-20 16:26:36

Ilis
Member
From: Екатеринбург
Registered: 2009-05-24
Posts: 5,970

Re: 3D-моделирование в OSM

liosha wrote:
metadenisik wrote:

Слой №2 предпочтительно хранить в отдельной БД ... По хорошему, слой №2 должен строиться как отдельный проект

Воистину так. Как бы ещё это до людей донести...

Базовые возможности для высотности и этажности должны быть прямо в ОСМ. В навигаторах есть трёхмерный режим, и недалёк тот день когда они будут рисовать 3Д-здания и всякие трубы и вышки.

В отдельном проекте хорошо рисовать полностью трёхмерные модели с текстурами и остальными плюшками.

Offline

#59 2010-12-20 16:31:53

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,808

Re: 3D-моделирование в OSM

wildMan wrote:
Sergey Astakhov wrote:

Разговоры разговаривать тут бесполезно. Будет отдельный живой проект - станут пользоваться им. Не будет - будут пользоваться тем, что есть.

да-да. несмогли дотерпеть до туалета - насрали посреди площади.

Ваш юмор, как всегда, искромётен. smile

Offline

#60 2010-12-20 17:02:08

metadenisik
Member
From: Stroitel, Izhevsk, Udmurtia
Registered: 2010-08-16
Posts: 346

Re: 3D-моделирование в OSM

Не знаю, базовые возможности и сейчас есть. Однако разноэтажные здания сейчас невозможно правильно обозначить. Я вижу в этом цепочку составляющих: указание этажности для простых зданий — указание этажности для разноэтажных зданий — привязка дорог к рельефу — рисование оврагов, развязок и мостов — рисование зданий со сдвигом по высоте — рисование всевозможных "дырок" по вертикали в зданиях — рисование элементов зданий типа балконов — текстуры. На каком этапе нужно остановиться и сказать: "Дальше в OSM" не нужно развивать 3д, это уже не базовые возможности"? Дырки в зданиях по высоте? Сдвиг по высоте периметра здания? Что именно? Разная этажность? Я лично хочу обозначать третье измерение, но как? и где? Поэтому я и выдвинул концептуальную модель, в которой, собственно, слои ВИРТУАЛЬНЫЕ, т.е. они разделены, но виртуально. Чтобы в любой момент можно было бы выделить третье измерение и его либо перенести и развивать самостоятельно, либо удалить как мусор. А как реализовать одностороннюю связь? Как сделать так, чтобы 2-й слой не влиял а 1-й? У меня куча вопросов, и я не могу на них ответить, т.к. я не программист, я не понимаю, как это всё реализовано и как всё это реализовать. И я делаю выводы на основании того, что есть и что понимаю.


На высоте 5000 метров

Offline

#61 2010-12-20 17:08:02

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

Re: 3D-моделирование в OSM

metadenisik wrote:

А как реализовать одностороннюю связь? Как сделать так, чтобы 2-й слой не влиял а 1-й?

Делается сторонняя база любой сложности, а в осм нужным объектам ставится тег типа custom:shape=<id объекта в сторонней базе>.
По-моему, очевидно.

Offline

#62 2010-12-20 17:49:49

Miroff
Member
Registered: 2010-01-26
Posts: 172

Re: 3D-моделирование в OSM

К счастью виртуальные слои работать не будут. Слишком сложно реализовать, слишком сложно маппить, слишком сложео протолкнуть. Сторонний сервис это даже не смешно. Откуда возьмется инфраструктура? Сервера? Редакторы? Кто будет поддерживать связь? Как привлечь людей маппить 3D там, а не в OSM? Что делать с building:levels/building:height?

Раз уж никто не может сказать, что конкретно обозначает building=yes (или что считать зданием), может считать что building=yes это часть здания фиксированной высоты. Ничуть не хуже фундамента или проекции. Если кому-то нужны плоские здания, прекрасно, пусть строит проекцию (объединяет полигоны по union) или выбирает полигоны, которые покоятся на земле, в зависимости от потребностей.

Я за building:height,  building:min_height + отношение building. Недостатки те же, что и так есть. Несовпадение элемента адресации с полигоном building=yes есть и сейчас. В любом случае эту проблему придется решать. Отсутствие поддержки в редакторах. При любой схеме ее не будет до тех пор пока не сделают.

Зато плюсы у такой схемы огромные:

  • Она позволяет маппить подавляющее большинство зданий

  • Она совместима с тем, что замаплено уже сейчас

  • Она достаточно проста

  • Позволяет ровно ту точность, которую может дать сообщество любителей

Last edited by Miroff (2010-12-20 17:50:45)

Offline

#63 2010-12-21 11:41:47

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

Re: 3D-моделирование в OSM

Пока резюмирую то, что обсудилось в IRC. Позже можно сделать пропозал.

1) Одно здание должно быть одним объектом. Очевидно, что в нетривиальных случаях, как-то здание состоящее из частей разной высоты, этим объектом один полигон быть уже не может и надо использовать отношение.
2) Существующие отношения не подходят. В частности, самое очевидное (мультиполигон) потому что
  а) Не позволяет использовать касающиеся внешние контуры.
  б) Тем более, не позволяет использовать пересекающиеся внешние контуры.
  в) Не позволяет задавать тэги на частях
  г) (что следует из в) - никак определяет что делать когда тэг проставлен и на контуре и на отношении.

Нелюбителям 3D напомню, что и безотносительно 3D возможности вменяемо обозначить здание с магазином сейчас нет.

Поэтому есть идея ввести новое отношение, я предложил type=physical. Членами, как и в мультиполигоне, выступают полигоны с ролями inner и outer, при этом допускается касание и пересечение контуров, а также тэги на членах отношения, которые задают свойства отдельных частей объекта и имеют приоритет над тэгами отношения.

Простейший пример:
way 1: building:levels=2
way 2: building:levels=10
relation: type=physical + building=yes + building:levels=10 + addr:street=* + addr:housenumber=*

Профит:
- Одно здание - ровно один объект, причём полностью описанный тэгами на отношении
- Добавление поддержки в существующий софт скорее всего тривиально, ибо объект можно обрабатывать как мультиполигон - объединением outer контуров и вырезанием из суммы inner'ов
- При этом можно однозначно определить конфигурацию здания любой сложности
- Отношение применимо не только к зданиям, поэтому название общее

Offline

#64 2010-12-21 13:35:07

luch86
Member
Registered: 2010-05-29
Posts: 199

Re: 3D-моделирование в OSM

AMDmi3, ваше предложение, если правильно понял, подходит только для простых разноэтажных зданий, которые можно разрезать по вертикали (например, жилых домов). Но для более сложных зданий (торговых центров, вокзалов и т.д.), где каждый этаж представляет собой внутри единое целое, лучше подходит разрезание по горизонтали с использованием тегов building:part=yes и building:min_level=*. После некоторых размышлений склонился к тому, что и для жилых домов проще использовать этот вариант, за исключением пристроек. Причём чем сложнее дом, тем удобнее именно разрезание по горизонтали, получается меньше полигонов.

А насчёт отношения, может лучше приспособить отношение building:
http://wiki.openstreetmap.org/wiki/Rela … /Buildings
Всё равно оно ещё нигде не поддерживается, логичнее использовать для зданий отдельный тип отношения. К тому же этот пропозал именно для зданий более универсальный, позволяет добавлять входы и POI. А для частей сложного здания можно добавить роль part.

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

Offline

#65 2010-12-21 13:54:30

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

Re: 3D-моделирование в OSM

luch86 wrote:

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

Именно это и нужно. При чём именно на этот контур повесить все теги, относящиеся к самому зданию - тип, адрес, общую этажность etc.

Offline

#66 2010-12-21 13:55:40

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

Re: 3D-моделирование в OSM

luch86 wrote:

AMDmi3, ваше предложение, если правильно понял, подходит только для простых разноэтажных зданий, которые можно разрезать по вертикали (например, жилых домов). Но для более сложных зданий (торговых центров, вокзалов и т.д.), где каждый этаж представляет собой внутри единое целое, лучше подходит разрезание по горизонтали с использованием тегов building:part=yes и building:min_level=*. После некоторых размышлений склонился к тому, что и для жилых домов проще использовать этот вариант, за исключением пристроек. Причём чем сложнее дом, тем удобнее именно разрезание по горизонтали, получается меньше полигонов.

Моё предложение подходит для обоих вариантов, как резать - дело хозяйское.

luch86 wrote:

А насчёт отношения, может лучше приспособить отношение building

Во-первых, моё предложение подходит не только для зданий, во-вторых, не хочется пихать в одно отношение всё подряд.
Я хочу задать способ описать форму сложного объекта, а уж его потом можно включить и в building и в address.

Offline

#67 2010-12-21 13:57:22

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

Re: 3D-моделирование в OSM

liosha wrote:

Именно это и нужно. При чём именно на этот контур повесить все теги, относящиеся к самому зданию - тип, адрес, общую этажность etc.

И получится то, что ты называешь фейком.

Offline

#68 2010-12-21 14:10:14

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

Re: 3D-моделирование в OSM

Нет, получится стандартный и общепринятый объект, обозначающий здание

Offline

#69 2010-12-21 14:10:17

luch86
Member
Registered: 2010-05-29
Posts: 199

Re: 3D-моделирование в OSM

AMDmi3 wrote:

Моё предложение подходит для обоих вариантов, как резать - дело хозяйское.

Все части здания, включая всякие башенки на верхних уровнях, включать в роли outer?

AMDmi3 wrote:

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

А для чего ещё, например?

Создавать по несколько разных отношений для одного здания тоже не хочется.

Offline

#70 2010-12-21 14:16:54

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

Re: 3D-моделирование в OSM

liosha wrote:

Нет, получится стандартный и общепринятый объект, обозначающий здание

И как он поможет обозначить здание из двух частей разной этажности?

Offline

#71 2010-12-21 14:22:40

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

Re: 3D-моделирование в OSM

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

Offline

#72 2010-12-21 14:24:11

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

Re: 3D-моделирование в OSM

luch86 wrote:

Все части здания, включая всякие башенки на верхних уровнях, включать в роли outer?

Да. part, если угодно.

luch86 wrote:

А для чего ещё, например?

Всего что имеет площадь и высоту. Куча man_made, natural, historic.

luch86 wrote:

Создавать по несколько разных отношений для одного здания тоже не хочется.

Я лично вообще не вижу смысла объединять в отношение здание с его входами и poi, потому что входы и poi к нему и так отнесены своим положением. Вот poi со входом объединить было бы куда логичнее.

Offline

#73 2010-12-21 14:26:39

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

Re: 3D-моделирование в OSM

liosha wrote:

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

Так и скажи - выкинуть этажность, потому что тебе лично она не нужна.

Offline

#74 2010-12-21 14:31:17

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

Re: 3D-моделирование в OSM

AMDmi3 wrote:

Так и скажи - выкинуть этажность, потому что тебе лично она не нужна.

Я уже это сто раз сказал. И вопрос не в том, что мне она не нужна (она мне нужна), а в том, что имеющиеся средства задаче абсолютно не соответствуют.

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

Offline

#75 2010-12-21 14:35:48

dkiselev
Member
Registered: 2010-02-09
Posts: 3,364

Re: 3D-моделирование в OSM

Т.е. я правильно понял что по схеме AMDmi3 чтобы замапить здание переменной этажности (3 и 5 этажей) с колодцем (колодец для того чтобы проиллюстрировать зачем нужен inner) чтобы это устроило liosha надо

1______2_______3
|  ____   |                |
|  |___| 3|       5       |
|______ |________|
4            5              6

Создать 4 вея
Первый 1(2)36(5)41 - это outline, видимо outer, либо прям такую роль (outline) и завести
На него building=yes, адрес, и возможно общее количество этажей /высота если здание разбивалось горизонталями (как останкинская башня)

Второй 12541 - это 3х этажное здание - outer,
На него building:part=yes building:levels=3 и т.д.

Третий - внутренний контур в роли inner
Без атрибутов видимо

Ну либо второй и третий в отношение мультиполигона и на отношение  building:part=yes building:levels=3 и т.д.

Четвертый 23652 - outer
На него building:part=yes building:levels=5 и т.д.

Ну и релейшн relation: type=physical

Только непонятно куда общие для здания атрибуты вешать, если удовлетворять требования liosha - на outline если AMDmi3 то как то логичнее на само отношение.

Last edited by dkiselev (2010-12-21 14:38:19)


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

Board footer

Powered by FluxBB