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.***

#301 2011-02-04 18:59:57

Danidin9
Member
From: Санкт-Петербург
Registered: 2011-01-31
Posts: 589

Re: Трёхмерные здания в Mapnik

Примерно 2-недельные эксперименты с 3D В Петербурге привели меня к мысли, что на рендере надо бы увеличить дефолтную высоту этажа. Сейчас сооружения, высота которых указана в метрах почти всегда выглядят непропорционально высокими рядом со зданиями, с высотой в этажах.
Дефолтная высота этажа,  как я понимаю она равна 2.5 м. На самом же деле 2.5 м - это минимальная высота потолка в комнате типового здания. Если учитывать перекрытия, подвал и чердак, то даже для самой захудалой хрущёвки выйдет число близкое к 3.0
Например: высота этажа - 2.5, перекрытия -0.15, подвала нет, но пол 1 этажа на 0.5 м выше уровня земли, чердак 1.5 м. Итого имеем для типовой 5-этажки : (2.5+0.15)*5+0.5+1.5 = 15.25 м (вместо нынешних 12.5). Разделим 15.25 на 5, получим один этаж ~ 3.0 м =k
Вычисленный подобным способом k примерно равен:
для 9-этажной хрущёвки с той же высотой этажа 2.9
для типовой 5-этажной сталинки (потолок 3 м.) 3.5-3.7
для современных зданий обычно >3.2
для зданий 19 века , заводских корпусов и моллов вообще молчу, и т.д.
Поэтому предлагаю увеличить дефолтный этаж до 3.2 м. При этом его визуальную высоту оставить прежней, но пропорционально сократить вектор 1-метрового отрезка. А то сейчас высотные здания, высота которых указана в метрах (например, в Москва-сити), кажутся уж слишком "растянутыми".

Offline

#302 2011-02-04 19:28:53

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,323
Website

Re: Трёхмерные здания в Mapnik

Danidin9, всё бы хорошо, но высота этажа сейчас и так 3 метра.


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#303 2011-02-04 21:10:13

Surly
Member
From: Екатеринбург
Registered: 2009-09-17
Posts: 820

Re: Трёхмерные здания в Mapnik

siberiano wrote:

Если кто по теням считает, надо бы ввести какой-то тег, только конкретный.

source=extrapolation должно подойти. "Extension of information from a known source" -- т.е. для любых догадок и косвеных способов получения информации он годится.

Offline

#304 2011-02-05 07:43:33

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

Re: Трёхмерные здания в Mapnik

Всё равно надо дефолтную высоту для вышек, башен и труб. Поправить высоту возникнет желание когда хоть какая-то труба есть. Если вообще ничего нет, то и желанию откуда взяться?

Offline

#305 2011-02-15 15:25:07

djonline
Member
Registered: 2010-11-25
Posts: 20

Re: Трёхмерные здания в Mapnik

http://maps.google.com/maps?f=q&source= … .0103&z=18

А это вы видели ? Сначала месяц назад это появилось в андроиде, теперь выкатили и в web-карты.
Кстати на андроиди данные подгружаются в виде векторов, так что чует моё сердце многие люди захотят себе сделать raw dump.

Offline

#306 2011-02-15 15:26:56

suslikk
Member
From: Voronezh
Registered: 2010-03-03
Posts: 837
Website

Re: Трёхмерные здания в Mapnik

хочу smile

Offline

#307 2011-02-15 16:22:36

Hind
Member
From: Moscow
Registered: 2009-05-25
Posts: 3,950

Re: Трёхмерные здания в Mapnik

djonline wrote:

А это вы видели ?

Ура, веб-вьюер для осма с поддержкой тачей и мультитачей!

Offline

#308 2011-02-26 22:47:52

Danidin9
Member
From: Санкт-Петербург
Registered: 2011-01-31
Posts: 589

Re: Трёхмерные здания в Mapnik

Предлагаю продолжить обсуждение темы разновысотных зданий. В этом посте я попытался собрать все существующие способы обозначать такие здания (не обязательно корректные). Для определённости, возьмём 5 этажный дом с 1-этажной пристройкой, имеющие общий адрес. Соответственно, их обозначают так:
1) 5-этажная часть building=*, building:levels=5; 1-этажная часть building=*, building:levels=1
Теги адреса вешаются на одну из частей (ту, что больше, обычно - жилую)
Плюс подхода: простота схемы
Минус: имеем здание без адреса
2) Создаётся мультиполигон из двух зданий, на который вешаются теги адреса. Есть вариант, когда building=* присваивается обеим зданием, и когда присваивается мультиполигону.
Плюс: все части здания имеют адрес
Минус: некорректное использование мультиполигона (outer не должны касаться); если здание имеет название, название на рендере пишется на каждой части, в итоге часто создаётся "замусоривание" карты
3) Контур всего здания - building=*; 5-этажная часть building:part=yes , building:levels=5; 1-этажная часть building:part=yes , building:levels=1
Плюсы: разрезание "по вертикали" оправданно, если пристройка имеет иную функциональную роль (это можно отметить дополнительным тегом)
Минусы: перекрытие линий; обычно выходит слишком много частей для длинных или нестандартных зданий; если здания на рендере полупрозрачны, передние части здания заслоняют задние
3а) То же самое - тремя мультиполигонами с составным outer
Плюсы: нет перекрытия линий; идентичные провторяющиеся пристройки можно соединить в один мультиполигон
Минусы: факт применения мультиполигона даже для простых зданий; если здания на рендере полупрозрачны, передние части здания заслоняют задние
4) Контур всего здания - building=*, building:levels=1; 5-этажная часть building:part=yes , building:levels=5, building:min_level=1
Плюсы: в ряде случаев возможно уменьшение числа building:part; на рендере полупрозрачные части не перекрывают друг друга
Минусы: перекрытие линий; некорректное использование тега building:levels (указаны высота части здания, совпадающей по контуру с основанием, а не всего здания с пристройками)
4а) То же самое - двумя мультиполигонами с составным outer
Плюсы: те же, что у (4); идентичные провторяющиеся надстройки можно соединить в один мультиполигон, а основание не резать
Минусы: факт применения мультиполигона даже для простых зданий; некорректное использование тега building:levels
5) Контур всего здания - building=*; ещё раз контур всего здания building:part=yes, building:levels=1; 5-этажная часть building:part=yes , building:levels=5, building:min_level=1.
Плюс: все теги применены корректно.
Минус: один и тот же контур обведён два раза.
5а) Вариант с мультиполигонами - то же самое.
6), перспективный. Разные части здания обозначаются как building:part=yes , building:levels=* (не важно, здание режется по вертикали или горизонтали). Затем все части объединяются в отношение нового типа "здание", на которое вешаются теги адреса и др.
Плюс: единая, относительно корректная схема
Минус: слишком громоздкая, особенно если части здания сами являются мультиполигонами. Неудобно извлекать информацию.

Итого, на данный момент считаю приемлимым компромиссный метод.
А) Использовать building, а не building:part, если части здания не касаются
Б) Если касающиеся части здания имеют разные функции или разную архитектуру (классич. пример: 9-этажка с пристройкой) - резать по вертикали, использовать метод 3 или 3а (несколько building:part внутри building=*)
В) Здания сложной формы (например, многие больницы) - резать по горизонтали, использовать метод 5а (building:part "слоями" по этажам, building по всей территории).
Г) Длинные здания с чередующимися секциями разной, но стандартной высоты - резать по горизонтали, отделяя базу от надстроек, надстройки объединять в мультиполигон.
Д) Здания на невысоком стилобате - резать по горизонтали, building=* - жилое здание, стилобат - building:part. Т.к. стилобат не рендерится в мапнике и т.п., всегда использовать дополнительные теги (чаще всего подходит amenity=parking)
Е) Считаю допустимым использовать building в качестве одной из building:part, если другие building:part - относительно небольшие надстройки (декоративные башенки, пентхаусы и т.п.), или надстройки, не делящиеся на этажи (т.е в них используется height, а не building:levels)

Offline

#309 2011-02-26 22:48:42

Danidin9
Member
From: Санкт-Петербург
Registered: 2011-01-31
Posts: 589

Re: Трёхмерные здания в Mapnik

Но пока остаётся неясно, что лучше делать со зданями такого типа:
http://www.citywalls.ru/house9638.html
Поэтому, предлагаю реализовать метод, позволяющий не только "складывать" здание из частей, но и "вычитать".
Cоздаётся новое понятие - building:part=no , которое отрезает часть от {building=*; building:levels=*}, расположенного в том же объёме.
Для последнего примера это бы выглядело как:
Всё здание -  building=*, building:levels=4; правая и левая часть - мультиполигон из двух outer - building:part=no , building:levels=4, building:min_level=3.
Тогда можно было бы вырезать арки, небольшие части зданий и т.п. не нарушая целостности основной части здания. В ряде случаев это был бы оптимальный метод.

Offline

#310 2011-02-27 21:26:06

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 9,368

Re: Трёхмерные здания в Mapnik

6) Создаётся НЕ мультиполигон, а специальный relation из двух зданий пункта 1), который объединяет их в общую сущность.  Адрес можно пристроить и на него, но пока лучше оставить на одной из частей.
Что-то типа http://wiki.openstreetmap.org/wiki/Rela … /Buildings
При позднейшем устаканивании, этот relation можно будет несложно выловить и переделать.

Last edited by wowik (2011-02-27 21:30:37)

Offline

#311 2011-02-27 22:37:32

Danidin9
Member
From: Санкт-Петербург
Registered: 2011-01-31
Posts: 589

Re: Трёхмерные здания в Mapnik

wowik wrote:

6) Создаётся НЕ мультиполигон, а специальный relation из двух зданий пункта 1), который объединяет их в общую сущность.  Адрес можно пристроить и на него, но пока лучше оставить на одной из частей.
Что-то типа http://wiki.openstreetmap.org/wiki/Rela … /Buildings
При позднейшем устаканивании, этот relation можно будет несложно выловить и переделать.

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

Offline

#312 2011-02-28 06:29:20

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

Re: Трёхмерные здания в Mapnik

Danidin9, вы бы оформили это в виде странички на вики. От схем зданий и так голова пухнет, а когда это все без форматирования  на форуме описывается - совсем грустно.


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

Offline

#313 2011-02-28 12:49:34

OldIvantey
Member
Registered: 2010-09-12
Posts: 169

Re: Трёхмерные здания в Mapnik

как нарисовать вот такое здание http://www.skolkovo.ru/

Offline

#314 2011-02-28 13:50:17

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

Re: Трёхмерные здания в Mapnik

OldIvantey wrote:

как нарисовать вот такое здание http://www.skolkovo.ru/

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

Кстати, как обозначать здания, где по стилобату можно кататься (парковка, пожарные, скорая)? У нас в Ижевске здания со стилобатами тоже есть.


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

Offline

#315 2011-02-28 17:08:12

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 9,368

Re: Трёхмерные здания в Mapnik

Danidin9 wrote:

А я нигде и не говорил, что мультиполигон.

В пункте 2) упомянут.

Danidin9 wrote:

Только тогда уже он будет состоять не из building, а из building:part

Отлично!
Просто все building нодо поменять на  building:part  :-)
Не проще ли считать, что building и есть часть здания? Тогда building:part можно отменить.
Если частей больше одной - то тогда склеивать релейшеном.

Те, кто не понимают релейшена, по старинке здание нарисуют, а вот building:part - пропустят.

Last edited by wowik (2011-02-28 17:13:58)

Offline

#316 2011-02-28 17:11:52

Amigo
Member
From: Москва
Registered: 2009-12-15
Posts: 2,772

Re: Трёхмерные здания в Mapnik

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

Offline

#317 2011-03-01 10:15:14

Danidin9
Member
From: Санкт-Петербург
Registered: 2011-01-31
Posts: 589

Re: Трёхмерные здания в Mapnik

dkiselev wrote:

Danidin9, вы бы оформили это в виде странички на вики. От схем зданий и так голова пухнет, а когда это все без форматирования  на форуме описывается - совсем грустно.

Прежде всего надо решить, будем собирать части здания в одно отношение или нет.
Если да - следует готовиться к отношениям, состоящим из отношений-мультиполигонов. Если нет - надо принимать тег building:part:levels, ведь у половины зданий основная часть является и building, и building:part, а совмещать тег building:levels, который относится к building:part, с тегом building=* некорректно (см. Останкинскую телебашню)
Я не знаю, что лучше. Третьего пока не вижу, всё что описал выше - полумеры.

Offline

#318 2011-03-01 10:20:41

Danidin9
Member
From: Санкт-Петербург
Registered: 2011-01-31
Posts: 589

Re: Трёхмерные здания в Mapnik

OldIvantey wrote:

как нарисовать вот такое здание http://www.skolkovo.ru/

Под каждую из частей здания - круглое основание, надстройки, "ножки" надстроек делается building:part со своими building:levels и building:min_level (или height  и min_height) Можно все building:part делать обычными полигонами, но лучше мультиполигонами со составным outer, т.к.
- линии не дублируются
- если будут части с одинаковыми height  и min_height (например, все "ножки"), их можно объединить.
building _пока_ можно сделать дополнительным мультиполигоном по внешему контуру, или присвоить тег building основанию (вместо building:levels), хотя последнее и не вполне корректно.
По поводу заезда на крышу стилобата - может поставить тег layer=1 на круглую часть и на дорогу?

Offline

#319 2011-03-01 10:25:56

Danidin9
Member
From: Санкт-Петербург
Registered: 2011-01-31
Posts: 589

Re: Трёхмерные здания в Mapnik

wowik wrote:
Danidin9 wrote:

А я нигде и не говорил, что мультиполигон.

В пункте 2) упомянут.


Danidin9 wrote:

Только тогда уже он будет состоять не из building, а из building:part

Отлично!
Просто все building нодо поменять на  building:part  :-)
Не проще ли считать, что building и есть часть здания? Тогда building:part можно отменить.
Если частей больше одной - то тогда склеивать релейшеном.

Те, кто не понимают релейшена, по старинке здание нарисуют, а вот building:part - пропустят.

В пункте 2 был пример, как не надо делать.
По поводу building:part. Хорошо, магазин-пристройка к жилому дому это отдельное здание. А башенка на крыше? А вот это здание http://www.openstreetmap.org/?lat=60.02 … 8&layers=M
чтобы нарисовать, пришлось резать по этажам. Каждый этаж - отдельное здание? Вряд ли.
Видимо, новое отношение, должно быть одинаково дружественно как к объектам building, так и building:part, причём во втором случае тег building лучше будет повесить на само отношение.

Offline

#320 2011-03-01 12:53:53

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 9,368

Re: Трёхмерные здания в Mapnik

Danidin9 wrote:

Хорошо, магазин-пристройка к жилому дому это отдельное здание. А башенка на крыше? ...

Так вот и давайте-таки магазины считать за building! Оставив building:part для балконов и башенок.

Last edited by wowik (2011-03-01 12:54:38)

Offline

#321 2011-03-01 13:01:20

xande almeida
Member
From: Tver
Registered: 2010-04-28
Posts: 256

Re: Трёхмерные здания в Mapnik

wowik wrote:
Danidin9 wrote:

Хорошо, магазин-пристройка к жилому дому это отдельное здание. А башенка на крыше? ...

Так вот и давайте-таки магазины считать за building! Оставив building:part для балконов и башенок.

Просто номер обычно один у здания с магазином. Наверное для этого и делают building:part, чтоб buildingов без номера не было.

Offline

#322 2011-03-03 18:28:55

Danidin9
Member
From: Санкт-Петербург
Registered: 2011-01-31
Posts: 589

Re: Трёхмерные здания в Mapnik

Посетила тут меня сегодня одна идея wink
Метод, который позволит рисовать дома в псевдо - 3d без введения каких-либо новых тегов (даже building:part использовать не придётся).
Значит так: теги высоты/этажности вешаются не на полигоны или тем паче мультиполигоны, а не обычные, незамкнутые веи. Значения тегов на вее показывает, на какой высоте (этажах) данный вей является внешней стеной здания. Веи объединяются в новое отношение - "здание", которому присваиваются все стандартные теги - building=*, адрес и общая высота/этажность (не рендерятся). 
Код программы-просмотрщика переписывается так, чтобы считывались все пороговые значения высоты (этажности) на здании, и в каждом промежутке, начиная от земли, и кончая самым большим значением, отрисовывавался слой наподобие мультиполигона с соcтавным outer.
Если немного поднапрячься, можно заставить этот метод отрисовывать даже наклонные плоскости ... но об этом думаю, пока говорить рано.
Вот конкретные примеры: http://img-fotki.yandex.ru/get/6005/dan … ee811_orig
В примере 3 показаны два вея, проведённых по одним точкам. В принципе, этого можно избежать, если отказаться от тега building:min_level, заменив значение тега building:levels на строку с разделителями (например, в данном случае 0;2;4;5 или как нибудь ещё). Тогда можно будет смело мапить даже балконы, замусоривания карты не произойдёт wink

Last edited by Danidin9 (2011-03-03 18:29:41)

Offline

#323 2011-03-03 18:40:15

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

Re: Трёхмерные здания в Mapnik

пилять... второе место за "гениальность" идеи.


--
OSMF BY Team

Offline

#324 2011-03-03 18:42:04

Kotelnikov
Member
From: Krasnodar, RU
Registered: 2009-05-07
Posts: 2,854
Website

Re: Трёхмерные здания в Mapnik

inotundestverbose.jpg


1 000 000 points: 80% complete

Offline

#325 2011-03-03 19:19:48

Danidin9
Member
From: Санкт-Петербург
Registered: 2011-01-31
Posts: 589

Re: Трёхмерные здания в Mapnik

Хм, а не могли бы крутые программисты объяснить, что такого в этом предложении, чтобы отвергать его так с ходу?
Я предполагал, что наверняка кто-то скажет, что мапить "стены" не кошерно. Но, правда, что не так? Код переписывать никто не станет под это? Или это слишком абстрактно для этого проекта?
И, кстати, у кого первое место? Или это оборот речи такой?

Offline

Board footer

Powered by FluxBB