Здания переменной этажности

Кое-что исправил и дополнил в схеме:
http://img-fotki.yandex.ru/get/6840/51351719.14/0_a51c5_2c376bbc_orig

убрал вообще этот пример, пусть будет меньше путаницы

поднял в заголовок

на http://skyscrapercity.com/ техэтажи, над которыми нет жилых, не учитывают. Да и по логике, мы ведь не будем считать 9-этажку 10-этажкой только из-за того, что над каждой парадной надстроен лифтовый блок?

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

Опять-таки, если обычный человек видит разноэтажное здание - рисуем одно здание с Part-ами. Если видит высокое точеченое здание на длинном низком - рисуем два здания. Если стилобат не воспринимается как здание, а скорее как деталь рельефа - рисуем retaining_wall без здания. Если “здание” - это подземный паркинг, то никто ничего не видит, ничего не рисуем, кроме amenity. True on the ground, короче.

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

Его мало кто использует и мало кто поддерживает (или вообще никто). В России, по крайней мере 339 упоминаний против более 30000 building:part

Нет, а что в этом такого?

переписал, это и правда не самое главное. Скорее, там комплекс признаков.

Видят лицевой фасад. Если кто-то ищет, скажем “пятиэтажку” в ряду зданий вдоль улицы, он не будет заглядывать в каждый двор, и смотреть, что там. Особенно если застройка плотная и двор-колодец может быть заперт. Карта должна быть ориентирована на пользователя, а не на бюрократическую/технологическую точность.

Я там чуток поправил:) Нижняя часть вообще может не быть зданием. А цвет не важен.

Нашёл, что есть в вики. И к сожалению, это proposal.

Тем, что на чердаках и в надстройках нет и не должно быть людей. Технические этажи не учитываются, этажи, где живут или работают люди - учитываются. Различие обычно видно с улицы. Техэтажи низкие и с маленькими окнами. Посмотрите любую официальную карту, генплан или тот же 2гис, никто не учитывает чердаки и технические надстройки.

MapSurfer работает по старой схеме.

Не описана нигде, но де-факто работает на http://f4map.com

Layer не связано с реальными значениями высоты/этажности. Оно только показывает, что какой-то объект находится поверх другого. Дорога по крыше стилобатной части будет иметь layer=1 относительно проезда под ней внутри этой части. Но кое-что касательно layer и правда сомнительно. Если для высотной части указан layer, то её этажность, вероятно, следует считать от того места, где для этого layer находится “уровень земли”. А находится он на крыше стилобатной части. Так что здание получается тут уже восьмиэтажное, а min_level вообще не нужен. Странная ситуация, идущая вразрез всем существующим схемам. Как считаете?

Дам ссылки и сразу на карту с примерами:
http://demo.f4map.com/#lat=60.1919634&lon=29.7064151&zoom=19&camera.theta=67.968&camera.phi=-145.818
http://demo.f4map.com/#lat=59.9562641&lon=30.3367539&zoom=18&camera.theta=78.568&camera.phi=108.003
http://demo.f4map.com/#lat=52.5218103&lon=13.3743425&zoom=17&camera.theta=74.27&camera.phi=41.826

Ну и плагин есть для JOSM, kendzi3d

Про дороги и тротуары нужно ставить layer=1, про это я ничего не говорил.

Я считаю, что нужно просто убрать layer=1 с красного контура на картинке.

Да, пожалуй, layer вносит ненужную путаницу. Убрал его, ссылку поменял.

Посмотрел новую картинку. А что такое addr:letter? Если есть дома 9а и 9б, то это два building с соответствующими addr:housenumber.
Если это здание (состоящее из двух частей в разных стилях) все-таки имеет один адрес, честно говоря, не понимаю, почему его нужно обозначать двумя зданиями. Если человек будет смотреть 2D-карту (например Мапник), то кроме прямоугольника он ничего не увидит. Если он будет смотреть через MapSurfer или другой сервис 3D-рендеринга, то всё равно для них придётся рисовать building:part с разными height.

addr:letter - Питерская, в основном, фича. У нас есть, например, дом 2Б (т.е. в паспорте у живущих там прописано - 2Б), а есть дом 2, литера Б (в паспортах - 2). Например, на юго-западе Питера полно домов, составленных из кирпичных и панельных частей. Адрес (паспортный) один, нумерация парадных и квартир общая, здания разные, иногда - в разные годы построенные, литеры разные. В другой части города точно такие же разномастные комплексы - все здания имеют разные адреса, внутри каждого своя отдельная нумерация квартир. Бюрократические выверты, в общем.
Например: http://maps.yandex.ru/?ll=30.192833%2C59.854293&spn=0.010085%2C0.001036&z=17&l=map%2Cstv&ol=stv&oll=30.191686340000004%2C59.85402302&ost=dir%3A15.5880720527246%2C24.259276857666777~spn%3A95.28941915151171%2C40.5231423954564

  • официально это всё “один дом”.

Я считаю, что если у домов отличается литера, то у них уже не одинаковый адрес, а потому их нужно рисовать двумя отдельными зданиями.

Ещё забыл написать по поводу стилобатов и layer. Может быть добавить пункт про то, что дорогам, тротуарам, игровым площадкам и прочим объектам на территории стилобата нужно присваивать layer=1? Новичкам будет полезно. Исключение - все здания. Им нужно присваивать building:min_level=кол-во_этажей_стилобата и building:levels=кол-во_этажей_стилобата + кол-во_этажей_здания.

И ещё о них же. Наверное, не во всех стилобатах есть парковка, а потому не нужны на картинке amenity=parking + access=private. Моё мнение, тот, кто хочет мапить разноэтажные здпния, знает, как обозначить парковку.

И ещё. В вики есть страница Simple 3D buildings, хорошо было бы закинуть эту картинку туда.

Картинка 2. Раньше был вроде тег building:parts=horizontal/vertical и рекомендовалось отмечать границы частей по границам помещений. Так, на картинке 2 должно быть building:parts=horizontal и две части: одна описывает первые 3 этажа, вторая - последний четвёртый. А то так, как на картинке, получается, что граница частей подходит прямо по квартире.
Я что-то пропустил и такой практики больше нет?

В 7-м примере говорится о roof:shape, поэтому я спросил о roof:orientation.
И снова уточнение требуется мне:
Отношение type=building (соответственно роли part и outline для его членов) не используется в приведённой инструкции. Почему отказываемся от него?
Пример № 11 смущает меня сильно. Откуда следует, что под синим контуром 4 этажа, а под красным - 2? Приведённый мультиполигон сделает дырку внутри синего контура. Разве нет?
А ведь от примера № 10 он отличается только этажностью синего контура. Соответственно, достаточно указать правильную этажность и всё сойдётся. На синий ставим 4-ку (вместо 1-цы из 10-го примера) и по-хорошему бы в обоих случаях объединить контуры в отношение, о котором говорил выше.
Эцелоп, симпатишная церквушка при малом кол-ве элементов. Кресты даж золочёные :slight_smile: Размерчики откуда брали?

Если мы считаем техэтаж (лифтовый блок, иную надстройку) несущественной частью здания, то мы не должны описывать её через building:part=yes. Если у здания есть building:part с building:levels=10, на самом здании building building:levels не может быть меньше 10. Либо так, либо для несущественных частей зданий, которые всё же хочется как-то обозначить, нужно использовать другой тег - например, building:small_part=yes.

Когда карта показывает этажность, видимую с какой-то из сторон, это и есть введение в заблуждение массового пользователя. Если с какой-то из сторон видны 5 этажей, это, прошу извинить за тавтологию, и так видно. Карта должна показывать реальную этажность, то, сколько у здания этажей. А для этажности лицевого фасада можно использовать отдельный тег, например, building:face_facade:levels.

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

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

Многократно говорилось, что сейчас MapSurfer, по сути, ни по какой схеме не работает, нормальной поддержки 3D сейчас нет, на этот рендер не следует ориентироваться.


К новому варианту:

  1. остались старые претензии к “видит большинство людей” (такое нужно выделять в отдельные теги) и допустимости указания на здании меньшей этажности, чем на её части, обозначаемой через building:part (такого быть не должно)
  2. если разные здания как будто бы имеют один адрес, это повод задуматься над тем, а не одно ли это здание, состоящее из нескольких частей; если есть дом 9, то нужно обозначить его как building дом 9, а потом уже указывать дополнительные теги, разъясняющие из каких частей состоит этот дом 9. Если это не дом 9, а дома 9 литера А и дома 9 литера Б, то надо так и обозначать: дом 9 литера А и дом 9 литера Б.

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

Кстати, да. Если на линии есть тег building=yes+building:levels=4, и эта линия является outer для мультиполигона building:part=yes, building:levels=2, это может быть воспринято как здание с дыркой посередине с противоречащей информацией о количестве этажей. В таком случае лучше building=yes+building:levels=4 сделать мультиполигоном.

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

да, это не лишняя информация, добавлю

ок, сделаю

Доработаем - закину. Только ещё на английский надо переводить, как минимум…

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

building:parts=horizontal

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

В примере 11 всё правильно. От здания “отрезается” с помощью building:part та часть, где этажность отличается от общей. В

примере 2 отрезается торец. В примере 11 - квадратный “бублик”. Поскольку его внутренность замкнута, делается

мультиполигон. С тем же успехом, можно было бы сделать, скажем, две полигональные building:part, охватывающие

центральную область.

Лучше новый ключ, чем новый тег. Предлагаю building:part=small

Я согласен убрать этот пример. Но, может быть, кто-нибудь выскажется в его защиту? Или в таких случаях на здание вообще

тег этажности лучше не ставить?

Если Вы зайдёте на крышу стилобатной части, вы стилобата вообще не увидите. В этом коренное отличие стилобата от

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

Большинство рендеров не показывает building:part, соответственно, при навигации возле таких зданий они будут искажать

реальность. Что можно предложить - добавлять building:part как к стилобатной, так и высотной части. Ещё вариант - вообще

отказаться от “стилобатной” схемы, делать всё или через одно здание, или через retaining_wall.

Хорошо. Давайте конкретный пример. Классическая девятиэтажка с чердаком и лифтовыми надстройками. Высота цокольного этажа - 1.5 метра над землёй и 1.5 под землёй. Высота каждого из жилых - 3 метра. Высота чердака - 1.5 метра.
Итого от земли до крыши 30 метров. Крыша плоская. Высота бортика по периметру крыши - 1 метр. Высота лифтовых надстроек - 3 метра.
Какую этажность у этого здания пишем - 9,10,11? Какую высоту- 30, 31, 33? Как рисуем building:part?
Это практические вопросы, стоящие перед маппером. Подумайте, как их проще решить.

Про эти литеры никто не знает, есть ли они, или вообще нет. Даже официальный RGis (по Питеру) не всегда знает. А обычные

люди - тем паче. Из этой ситуации есть два разумных выхода:

  • либо приравнять “здание” к номеру дома (как в паспорте жителей), а всякие полумифические литеры не учитывать, и как

максимум, совать их в building:part.

  • либо приравнять “здание” к технически самостоятельной постройке, а есть ли адрес, и какой, считать вторичным.
    Всё остальное - полумеры. Я пока поддерживаю вторую из этих двух позиций, в принципе, готов поддержать и
    первую, если за неё вступится большинство. Но не нечто среднее между первым и вторым, т.к. это ни приведёт ни к чему
    хорошему.

Я против коренного перворота в схеме тегирования. Но хочу заметить, что новая схема предполагает ещё и отказ от
building:min_level на частях, которые не являются “висящими в воздухе”. Т.е от отказа building:parts=horisontal схемы.

Мне кажется, если рендер не понимает, что на мультиполигоне уже есть свои теги, и тег building на outer к нему никак не
относится, то это проблемы рендера, а не данных. Возьмём для сравнения такой пример. Есть территория села, полностью
занятая жилой зоной, кроме центральной части, где озеро. Мы рисуем place=village полигоном. И рисуем мультиполигон
landuse=residential, у которого линия с Place будет outer. Что здесь не так? По моему, всё правильно.

Извините за простыню текста, но ещё один момент. Возможно, всё же требуется ввести тег building:parts = simplified_scheme, чтобы хотя бы отделять здания, замапленые по новой схеме от прочих. По крайней мере до тех пор, как какая-то из схем не победит. Как смотрите на такое?

На всякий случай. Просьба к мапперам: пока не использовать схему тегирования с новых картинок для редактирования базы данных. Схема в процессе разработки.

А новая схема обсуждалась с мапперами из других стран, хотя бы из Германии и Англии?

Я, в принципе, не против. Эх, а я такой хороший дом нарисовал с building:parts=horizontal:
http://www.openstreetmap.org/relation/3460647

Выскажусь против :slight_smile: Повторюсь. Если пользователь смотрит 2D-карту (например Мапник), то он увидит здание вообще без указания высоты. Если же он смотрит 3D-карту (например F4 map), то увидит, с какой стороны сколько этажей. Поэтому этот пример считаю неправильным.

А почему бы не приравнять building к литере (если она есть и известна, в остальных случаях - к номеру дома)? Я смутно представляю поиск по addr:letter, если они запихнуты на building:part. И ещё смутнее - их конвертацию в карты для навигаторов. По крайней мере делать всё это с отдельными зданиями гораздо легче.

А разве на стилобате должна быть какая-то инфраструктура? Просто цокольный этаж не будет стилобатом? Конкретнее: мой любимый Просвещения 75 в СПб - три высотки с общим стилобатом, по его крыше никто не ходит.
Ну и идея резать под’езд вертикально посередине квартиры (картинка 2 и далее много где, и в случае маленького стилобата тоже) мне не кажется хорошей идеей. Это пока мы не занимаемся поэтажным рисованием такое может прокатить. Всё-таки граница полигона building:part ассоциируется с разделительной стеной.
К этому же относится и отказ от min_level (но один вариант всё ж остался) - кусок здания в другом куске здания.
На пятиэтажной трёхэтажке никак не обозначен голубой проход.
А точно детсад от жилых должны отделяться точкой с запятой, а разные этажи друг от друга - запятой? Как-то не очень логично.
Что по мне - не универсально и заставляет подбирать (или помнить) в каждом отдельном случае вариант рисования.

Вот и я об этом всё время думал и так и не понял, что имелось в виду под «видит обычный пользователь», что именно от этого зависит? т.е. что он должен увидеть и сделать при этом (для чего смотрит и где?) :slight_smile:
А пример № 11 некорректен. Внимательно сами посмотрите на него. Там что-то не то (причём совсем). К чему относится (и каким образом!) building:part=yes + building:levels=2 ? Ни один рендер это адекватно не нарисует.
Строго говоря, принцип «максимальная этажность на внешнем контуре» не понятно для чего нужен. Не глядя на него, получилось бы всё красиво. Как раз теговый минимализм:
красный контур - building=yes + building:levels=2
синий - building:part=yes + building:levels=4
Что мы и наблюдаем в примере № 10.

А есть жилые дома, где квартиры располагаются шахматкой - на каждой лестничной площадке есть двери квартир. И тут может быть различие в количестве этажей в зависимости от бока дома.
В принципе “максимальная этажность” может применяться для тех рендеров, что не понимают составных домов, но могут отображать этажность всего дома и в таком случае, если это колодец и задняя часть другой этажности, то может возникнуть непонимание на местности. Но тут опять всё будет зависеть от того, с какой стороны я подошёл к дому. Не, я против - максимальная, значит максимальная всегда.

Да всё правильно в 11 примере!
http://img-fotki.yandex.ru/get/6831/51351719.14/0_a5431_7987b85d_orig
Вот: сначала обозначаем отдельно, как в примере 2, зелёную часть - она 2- этажная. Потом так же синюю часть. Потом объединяем их. Получившаяся фигура с дыркой, - мультиполигон. Оставшаяся часть в середине - 4-этажная по умолчанию.

Здесь не принцип «максимальная этажность на внешнем контуре», а принцип на объекте, являющейся границей здания, должна висеть этажность здания. В данном случае эта линия - внешняя(красная), а этажность -4.

Давайте пока забудем о стилобатах и сделаем шаг назад.
Предлагаю всем желающим простенький пример для понимания всей неоднозначности проблемы с надстройками:
http://img-fotki.yandex.ru/get/6823/51351719.14/0_a5433_734b1778_orig
Самая обычная девятиэтажка, коих в крупных городах сотни. Положим, мне очень хочется замапить её во всех подробностях. А именно, просто нарисовать лифтовую надстройку в 3d. Вопрос: какие теги будут на красном контуре, а какие на зелёном? А может там ещё нужны какие-то объекты?

Это я и подразумевал, суть не меняется (не важно как называть: «внешний контур» или «граница здания», собственно внешний контур всегда и принимается за основной контур/границу здания, куда и ставится максимальная этажность)

На такие не стоит равняться, а для плоских - всё равно.

Стоп, откуда взялась зелёная часть? Простите за въедливость, но это - непонятка. Вы подразумеваете такую схему по умолчанию (мол, и так же ясно), а рисуете только (не знаю что «только» :smiley: )… что вы рисуете именно в 11-м примере? С этой картинкой (где появился зелёный элемент) всё понятно, только зачем тогда мультиполигон? Вы же сами выступаете за упрощение.
Мне ещё интересно: всем остальным всё понятно (о чём я так настойчиво спрашиваю)?
Если у вас подразумевается, что мультиполигон состоит из зелёного и синего многоугольника, то причём там role=inner/outer? Как они возникают (в результате на красном и синем контруре)?