Куда ставить тэги типа building:use, которые сейчас стоят на “той части, этажность которой равна этажности здания”?
На общий контур? Тогда это будет означать building:use всего здания. Как минимум - всех частей, для которых building:use не проставлен.
Что делать, если я у основной части building:use знаю, а у второй нет? Ставить на вторую building:use=unknown?
Я хотел сказать, что новая схема допускает не использовать building:part для основной части, но отнюдь не запрещает использовать её. Если по какой-то причине эту часть надо отметить, то ничто не мешает это сделать. На картинке это никак не скажется.
Новая схема хороша тем, что если, например, у девятиэтажки одна из секций пятиэтажная, то не нужно городить огород с двумя building:part, полностью накладывающимися на контур здания, или использовать мультиполигоны. А достаточно одной building:part для пятиэтажной части.
Также, чтобы отметить подворотню, в новом варианте нужна только одна building:part - собственно, проём в здании, а не три (минимум), как сейчас.
Тогда схему логичнее просто сделать на override-принципе.
Здание описывается тэгами внешнего контура, а дополнительные building:part - корректируют эти тэги в тех частях здания, где они заданы.
Если таким образом можно будет и кольцеобразное здание нарисовать без мультиполигона, например, задав “дырку” через building:part+building=no, то я, пожалуй, буду за. Однако тут вопрос, как связать внешний контур и дырку в одно здание.
Ещё нужно определиться, допустимы ли накладывающиеся building:part-ы.
Хорошо бы сделать детальное описание.
С минимумом изменений: building:part=[известный тип здания (apartments/office/commerce/industrial/school/etc), иначе - yes] + building:levels=[кол-во этажей]
Для общего контура building=yes + building:levels=[максимальный этаж (для костыльной ущербной обратной совместимости со схемой без building:part)] + адресные теги.
Исключая избыточность (и обратную совместимость ):
Пункт № 1, только без общего контура, адресная информация на отношении type=building.
apartments/office/commerce/industrial/school - не тип здания, а варианты его использования.
Может быть здание построенное под детский сад, а там сейчас фабрика.
Для использования у нас building:use
Она не костыльная, а для задач, не связанных с формой здания. Например, для составления адресной базы.
Здесь не хотелось бы запутываться в тонкостях терминологии. Случится там фабрика (ваш пример) - поставите industrial. И что такое «тип здания»? Имеется в виду тип конструкции? Неважно как это называется, важно - всё уже придумали до нас
На этой странице используется термин «тип». Не удалось найти (плохо искал, нехотя) толкового описания building:use (кроме упоминания на страничке выше).
Чтобы не получалось масла масляного, по мне, лучше на building:part ставить теги по аналогии building, поскольку это и есть соответствующие части здания, в комплексе (type=building) его образующие. А если адрес у этого комплекса общий, то из building:part=* получаем тип/назначение/применение/или_что_там_имелось_в_виду всех составляющих индивидуально (для того же рендера) и, ничего не поделать, контур role=outline для адресации.
Понимаю, но речь об этажности, которая не связана с адресной базой. Этажность на общем контуре помогает некоторым навипрограммам (СитиГид, например), рендерам (тут говорили о поддержке на F4 новой схемы). Вы имели в виду, что «куда-то же надо адрес прикручивать?»
Наверное, имелись ввиду кольцевые здания переменной этажности. Сам не видел таких, но это возможный случай. Тогда нужно building:part делать мультиполигонами (не обязательно все части, зависит от здания) и из них составлять отношение type=building
Нет, речь о том, что для некоторых задач переменная этажность здания не нужна, нужно только положение здания или только контур или только адресные тэги и т.д. Mapnik не рисует building:part и не надо, ИМХО. Пусть F4 рисует building:part-ы.
Ладно, как рисуем здание с дыркой, с разной этажностью и разными адресаму у разных частей?
ИМХО, схем для рисования зданий должно быть максимум две - для простого здания (например, линия с building=yes) и для сложного.
В принципе - да. Но конструкция-то единая. И иногда в ней есть часть, у которой хрен знает какой адрес. Сейчас она получается ещё одним отдельным зданием без номера дома. Скорее всего это часть как-то поделена между двумя башнями, но может быть она имеет свой адрес, причём её территория может частично залезать на первые этажи башен.
Имел в виду вот такого типа мультиполигоны. Его легко довести до замкнутого («кольцеобразного») состояния. Если у сегментов будут разные адреса, то контуры-мультиполигоны, не имеющие building:part или имеющие building:part=no (уже не обязателен) будут составляться из соответствующих кусочков-отрезков. На этих контрурах и будет building=yes, адрес и т.д.
Прекрасно работает и 3-D и адресный поиск в навигаторах (и не только).
P.S. Проблема только в задании индивидуальных свойств, таких как тип/назначение/применение/название, для building:part, а точнее - в поддержке такого обозначения в одних приложениях без ущерба для других.
Ну это схема building:parts, расширенная до того, что каждый контур (может быть) нарисован через multipolygon
Правда, вместно building:parts=vertical стоит building:part=no, но можно и на такое условиться.
С этой схемой
“Дырка” для кольца делается через роль inner в multipolygon-е.
Если части здания имеют разные адреса, то для каждого адреса делается контур с адресом и building=*, внутри могут быть контуры отдельных частей, а общего контура для всей конструкции не делается.
ИМХО, в этом случае building:part=no на каждом контуре с адресом будет вносить путаницу. Ведь по сути это часть одной конструкции, а тут написано “не часть” Лучше всё-таки building:parts=vertical ставить.
Если сюда приплюсовать предложение Danidin9, то максимальная этажность ставится на внешний контур здания, а контур, где эта этажность есть - не обязателен.
Экономия - 1 релейшн. С учётом общей сложности схемы - экономия небольшая.
Но в более простых случаях (когда вместо multipolygon-ов нарисованы контуры по общим точкам), экономия может быть больше.
“у девятиэтажки одна из [средних] секций пятиэтажная” - две линии - общий контур с 9 этажами и пятиэтажной секции.
пояснение “часть, равную по этажности зданию, указывать не обязательно” указано только в примере с разноэтажными секциями, хотя это пояснение (и указание на то, какое обозначение какой части здания было опущено) имеет смысл, например, и для примера с подворотней
в примерах с чердаками и надстройками есть building:part с этажностью, превышающей этажность здания, хотя этажность здания должна быть равна максимальной этажности, встречающейся на её частях
неучёт этажности частей, не видных большинству людей, во-первых, на мой взгляд, крайне странен, а, во-вторых, противоречит тому, что этажность здания равна максимальной этажности, встречающейся на её частях
в случае со стилобатной частью теги вообще “обманывают”, указывая на существование двух зданий, хотя речь должна идти о двух частях одного здания (стилобатной и высотной)
а) Не упоминается roof:orientation=along/across
б) type=building уже не требуется, как я понял?
в) Пример разновысотного с башней какой-то странный: на отношении building:part=yes? на синем контуре нет тегов?
г) Стилобаты без дорог и газонов не явно выражены? Что с ними предлагается?
д) Насчёт большинства людей не понял ничего))) А если принять, что оно вообще половину (большую ) не видит?
е) Если пляшем от общего контура (красный), то предпоследний пример не в дугу совсем
ж) building:levelPlan интересный вариант, плохо только, что building:part не имеет подобной маркировки
з) Чем отличается пример с чердаками и надстройками от странной «мультиполигонной» башни?
По поводу здания со стилобатной частью. Мне кажется, указывать layer=1 для красного полигона не нужно, достаточно building:min_level=1. Потому что min_level считается от layer, если layer не указан (то есть равный нулю), то здание возвышается над уровнем земли на 1 этаж. Если же добавить** layer=1**, то расстояние между уровнем земли и жилым зданием будет равна 2 этажа, что не есть правдой при одноэтажном стилобате.