Если рисовать building по проекции, то это будет странно выглядеть там, где часть здания нависает над дорогой.
Дополнение с учётом предлагаемых тегов, обозначающих принцип деления здания на части.
Если тег будет, то определять части не придётся: конвертер/рендерер будет знать, что здание состоит из частей с указанной этажностью. В противном случае может получиться, что отрисуются одновременно и всё здание параллелепипедом, охватывающим выпирающие части, и все его части.
Ну вот с упомнянутым зданием МИРЭА проблема как раз не в том, что его нельзя само по себе отобразить в псевдо-3D (оно является объединением нескольких фигур, образованных простым движением основания вдоль перпендикулярной направляющей), а в том, что оно стоит не на горизонтальной поверхности. Таких зданий не много, но они есть.
Спасибо, верное замечание. И тогда ещё стоит упомянуть, что по крыше стилобатной части обычно возможна пешеходная (или даже авто) навигация, и в таком случае layer=1 относится и ко всем highway на такой крыше.
Ну да, это скорее исключения. Пока стоит отмечать этажи по максимуму, а подобные факты писать в note.
Вообще сейчас есть тег ele=*, может в будущем он будет использоваться чаще, если повысится точность навигаторов в измерении вертикальных координат.
building:parts=mixed
Вот если бы там что-то отличное от yes ставилось - тогда другое дело.
В некоторых схемах (например для мапника) каждый дополнительный тег - это дополнительная колонка в базе. Если можно безболезненно сократить кол-во тегов, заменив их разными значениями - IMHO это стоит сделать.
Не возражаю:
building:parts=vertical, horizontal или mixed
Чтобы рендереры, которые умеют работать только с вертикально или только с горизонтально порезанными зданиями, знали, нужно ли им пытаться аккуратно отрисовать здание, составив его из кусочков.
Если рендерер не умеет резать по горизонтали, то он может даже не пытаться, увидев min_level. Если по вертикали, то может рисовать части так, как будто они не соприкасаются.
Думаю, если рендерер пропустит в отрисовке эти промежуточные перемычки, но нарисует всё остальное, то это не сильно скажется на общем силуэте и узнаваемости здания.
Это условие на практике приводит к нехорошим последствиям. Положим, есть здание building=yes, соприкасающееся с несколькими другими building=yes. В какой-то момент я обнаруживаю, что у здания переменная этажность, добавляю внутрь полигоны building:part с разным числом этажей. Это одно здание прорисовывается, все остальные касающиеся building=yes из 3D пропадают.
Получается, что уточняя высоту одного здания, я могу “сбить” картинку для нескольких других. Либо я должен проверять все касания и добавлять building:part даже на те здания, которые состоят из одного параллелепипеда и которые делить никогда не придётся. building=yes и building=part на одном и том же полигоне выглядят странно (фактически - тегирование по рендерер).
Нужно постараться сделать так, чтобы не отрисовывались только те building=yes, внутри которых есть building:part. Текущая ситуация не вполне нормальна.
Если здание порезано по вертикали и имеется min_level, это, скорее всего, арка (min_level=1). Если её отрисовать как кусок здания, узнаваемость сильно не пострадает.