Главный недостаток - необходимость дублирования линий в полигонах/мультиполигонах самого здания и его частей. От этого можно было бы избавиться, собирая здание из касающихся частей как отношение, но т.к. пришли к выводу, что мультиполигон в качестве такого отношения не годится, то возникает необходимость придумывать какую-то новую сущность. Если учесть, что сами части могут быть мультиполигонами, всё это будет слишком громоздко, и вряд ли кто станет поддерживать такую схему.
Немного улучшило бы ситуацию отделение building:part:levels от building:levels. Можно было бы разрезать здание по горизонтали и использовать в простейшем случае два частично накладывающихся полигона вместо трёх перекрытых полностью. Но по ряду причин building:part:levels тоже не прижилось.
AMDmi3: мне самому всё это не нравится, и, признаться, я сам в последнее время отхожу от канона, опуская этажность на самом здании, если она уже есть на частях. Вообще, на картинке изображены последствия компромисса - теги, макисмально подходящие к особенностям рендерера латлон (космосники). Но он в последнее время вообще не обновляется, и этот слой убран с osm.org.ru
Единственное, что я могу предложить - использовать building:part:levels (как вариант - просто levels). В своё время было высказано, что он дублирует building:levels и потому нежелателен, но видимо, ничего лучше не придумать. Также надо будет разделить и height - тег отдельно для зданий и для частей (например, building:height и height)
Авторы конверторов, вы готовы поддерживать подобные теги? Предлагаю всем снова подумать над этой темой.
Отдельно по зданиям со стилобатом: тут всё одновременнно просто и сложно. Если ставить тег building на высотную часть, то будут обмануты те, кто на земле вблизи от здания - для них стилобат сам по себе является зданием. Если же ставить на стилобат - контур введёт в заблуждение людей, осматривающих местность издалека, замечающих преимущественно высотные корпуса, а также тех, кто стоит на крыше стилобатной части. По сути, здесь два здания в разных слоях. Что с этим в принципе можно сделать?
И в новостройках таких зданий - пугающее количество. Конкретно в приведённом примере стилобатная часть вообще не прорисована так как она вообще начинает сбивать с толку поскольку над первым этажом (паркинг и технические помещения) расположена детская площадка, тропинки, скамейки и прочие элементы благоустройства. ОСМ плохо приспособлен для работы с многоуровневыми структурами, в рендере и JOSM-е получается каша. “Северная долина” (это тоже ЖК в СПб) тоже постоянно радует такими сложными зданиями.
Советские магазины-пристройки к типовому зданию в этом смысле кажутся простыми объектами.
В целях повышения образованности - а где в РГИС подобные идентификаторы объектов можно увидеть? В общих свойствах только кадастровое дело вроде. Результатов поиска по адресу так ни разу и не дождался. А тут, оказывается, можно адресовать напрямую Или это не для всех?
Это тоже не совсем правильно, ибо потенциально рендеры, не умеющие part’ов должны иметь возможность хоть какую-то помойку, но нарисовать.
По-хорошему, нужно не просто перенести высоту в другой тэг, а использовать тэги из которых понятно что за высота указывается, а оная может быть максимальной (как с башнями Кремля), преобладающей (случай с башенкой на картинке), средней, возможно ещё какой-то. Т.е. что-то типа {max,dominant,mean}_{height|levels}. Этим можно пользоваться и в отсутствие part’ов, а пользователь данных может выбрать что ему использовать - например, максимальную высоту для планирования полётов летательных аппаратов, преобладающую для рендера, среднюю для оценки жилплощади и т.д.
Если это конструктивно и юридически одно здание, то building должен всё-таки быть один. Но вообще да, два здания тут пока, пожалуй, самый адекватный компромисс, ибо проще всего рисуются, поддерживаются мапником и не таят граблей с мультиполигонами.
Кстати, мы когда-то обсуждали что-то типа тэга building:has_parts=yes. Было бы неплохо хотя бы его ставить на здания, составленные из частей, чтобы их можно было не рендерить как те кремлёвские башни.
Каких именно? Касательно изначального вопроса, вам нужен второй пример - тут building:levels есть как на общем контуре (в данном случае максимальный), так и на частях. Если используются мультиполигоны, это ничем кардинально не отличается от контуров по общим точкам - будет 3 мультиполигона (для всего здания, для левой части, для правой части), использующие 3 общих линии (левая часть, правая часть, стена посередине).
А касательно building:parts - это нужно чтобы трёхмерный рендер знал что нужно рисовать только part’ы, но не само здание (иначе здание покроет обе части, и второй случай с картинки будет выглядеть как один пятиэтажный дом. Вот пример из реальной жизни: http://glosm.amdmi3.ru/#zoom=18&lat=55.770022&lon=37.648751
ITO же должен это нормально обрабатывать - о building:part он скорее всего не знает, а внешнее здание с этажами должен, по идее, показывать как обычное здание с этажами.