Деление здания из мультиполигонов по характеристикам разной природы

Если модераторам будет угодно, можно это перенести куда-нибудь поглубже, например, в вопросы новичков: :slight_smile:

Мультиполигоны — вещь дико удобная. А вопрос такой: если у частей здания есть характеристики разной природы, которые не образуют иерархии, но для использования требуют тега building, то как их правильно вносить в базу? Поясню примером.

Вот основная площадка Матмеха СПбГУ: http://www.openstreetmap.org/?lat=59.879657&lon=29.829071&zoom=18&layers=M

Здание многострадально:

  1. не смотря на то, что здание вполне монолитно и строилось сразу, у него много корпусов, при этом:
    1.1. есть кадастровые корпуса;
    1.2. есть корпуса по инженерному плану, не совпадающие с кадастровыми (одни в другие не входят, но пересекаются);
  2. у разных его частей разная этажность;
  3. есть 5 эркеров, начинающихся со 2 этажа.
    Сейчас это всё внесено в базу мной и ещё полутора маньяками.

Проблема в том, что всё это деление принципиально не образует иерархии. И проблема в том, что для указывания кадастровых и инженерных номеров, этажности и т.д. у соответствующего мультиполигона должен стоять атрибут “building”. В итоге, некоторые участки здания (в пересечении мультиполигонов) маркируются атрибутом building фактически по 3-4 раза. Какие-то больше, какие-то меньше. В JOSM выглядит уродливо, растеризаторами рендерится хорошо. Но главное меня это беспокоит по сути. Здание-то одно (а не 3-4), просто разные его характеристики его по-разному делят.

Предвижу ответ вроде “адекватные люди столько над одним домом не издеваются”. С точностью до этого, какие будут предложения?

Советую:

  • убрать тег building с общего контура, и вообще желательно убрать этот контур, а название перенести на территорию
  • оставить building на кусках здания, имеющих разные адреса (литеры). Сейчас обычно используется схема один адрес = один дом
  • заменить building на building:part на кусках с этажностью. Glosm и latlon понимают этот тег и проставленные вместе с ним building:levels, building:min_level, height и min_height (правда, Glosm не понимает, если тег на мультиполигоне)
  • также заменить на building:part куски с названиями корпусов, если они не совпадают с литерами или частями с одной этажностью.

Спасибо!
building:part — видимо то, что надо. Буду постепенно править.

Кстати столкнулся с тем, что 3D-рендерилки (glosm не пробовал) вообще не связываются со зданиями из мультиполигонов, обходят их стороной. Интересно, это в зданиях накосячено, или рендерилки в принципе этого не поддерживают?

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

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

Так почему бы не допустить, что геометрическое положение building:part внутри building автоматически приписывает его к этому building. С адресами внутри населённых пунктов ведь это работает.

http://latlon.org/buildings понимает здания из мультиполигонов. Другие рендереры скорее всего не поддерживают (кстати, о каких идёт речь?)

Спасибо. Если теги на частях уточняют теги на целом и имеет место нечто вроде наследования — это ещё лучше.
Правда написано про collection всего ничего: http://wiki.openstreetmap.org/wiki/Relation:collection
Тем не менее, как пользоваться — понятно. Группировка с наследованием свойств. Надеюсь, что ещё и с перекрытием.

Одно только вызывает сомнения: если про него так мало написано, то возможно оно ещё менее популярно, чем building:part… Кто его поддерживает?

latlon - да, он молодец.
не умеют Kendzi 3D и http://www.osm-3d.org/