Попробуйте начать с чего-нибудь попроще, например, со здания состоящего из двух частей.
Отношение type=building не является обязательным.
Обязательно нужно создать контур всего здания с тегом building и контуры частей здания с тегом building:part.
Части здания с тегом building:part должны находиться внутри контура всего здания с тегом building.
Если какие-либо контуры совпадают (полностью или частично), имеет смысл использовать отношения, ссылающиеся на одну и ту же линию.
Я так и не смог разобраться с отношениями. Как их делать я не понял. Но похоже, что и так все работает нормально. Делаю так:
1)Рисую дом. Даю дому теги:
building=apartments
building:part=base
building:levels=1
2)Рисую объект, который должен стать надстройкой на крыше. Его теги:
building=service
building:part=yes
building:levels=2
building:min_level=1
В f4map и Kendzi3D модели домов с моими надстройками на крышах выглядят корректно и в целом это меня устраивает. Теоретически это не очень правильно, потому что каждый раз выскакивает предупреждение “здание внутри другого здания”, но на практике это не мешает 3D-визуализаторам правильно интерпретировать мою задумку.
Корпуса, относящиеся к одному зданию, но с разным количеством этажей, просто делаю отдельными домами. Разве что соприкасающиеся точки прикрепляю нажатием клавиш N и M. Адрес и пр. информация для навигации вешаю только на один корпус, чтобы не было дублирования адресов при поиске.
Должно быть как-то так:
1)Рисую дом. Даю дому теги:
building=apartments building:part=base
building:parts=yes
building:levels=1
2)Рисую объект, который должен стать надстройкой на крыше. Его теги: building=service
building:part=yes
building:levels=2
building:min_level=1
Use building:part=yes for parts of the building which only have different attributes (building:levels=* and height=*). Use building:part=(type of building) for parts of the building which have a different function and possibly attributes (e.g. building:part=roof or building:part=retail).
Как я понял, building:yes c максимальной высотой по всему контуру здания. Это габариты и общие теги. building:part на меньшие и отличающиеся части
Нет?
Таким образом, на контуре здания необходимо указать максимальную этажность. Эту максимальную этажность могут использовать 2D-рендереры, которые не понимают building:part, чтобы нарисовать высоты всего здания в виде тени.
Действительно, Kendzi 3D имеет такое неудобство. Попробуйте указать максимальную этажность на контуре здания непосредственно перед отправкой данных на сервер.
Это уже проблемы веб-программы для рендеринга (f4map), а не корректности ввода данных в OSM. Может исправят когда-нибудь. f4map разве вообще отображает двери? kendzi3d-да, а вот эта веб-программа нигде не показала мне двери, которые я ставил (кстати, обязательно ставлю расположение подъездов тегом entrance=staircase в многоквартирных зданиях, если знаю, где они находятся. И вам советую)
Я вообще-то тыкаю building:part=yes (без building=yes) на те части здания, которые находятся внутри основного контура здания (надстройки на крышах-технические помещения лифтовых шахт, башенки и пр.), а на здания, которые просто состоят из корпусов разной этажности, но не пересекают контуры друг друга, ставлю оба тега: building=yes и building:part=yes. Потому что когда не ставил building=yes на чатсь здания, она не отображалась в f4map. Чтобы указать, с какого этажа начинается надстройка (т.е. обрезать снизу лишнее, чтобы оно не проваливалось в здание), использую building:min_level. Вообще использую только building:levels для добавления третьего измерения чертежам зданий, height для зданий не использую, потому что очень легко подсчитать количество этажей визуально, а для building:height не понимаю, где брать информацию, ведь это по сути точная высота в метрах?
Пример в 3D- http://demo.f4map.com/#lat=55.8647289&lon=37.1159621&zoom=19&camera.theta=66.249&camera.phi=-140.351
Редактор- https://www.openstreetmap.org/edit#map=17/55.86502/37.11577
P.S. Часть здания, которой нет на спутниковых картах, на самом деле существует.