Создание здания на основе citygml4j в LoD3 и LoD4

Я пытался создать модель здания на основе citygml4j на разных уровнях детализации. Я мог бы генерировать простые модели вплоть до LoD2. Я хочу добавить еще несколько деталей, таких как двери и окна, а также геометрию интерьера в модели. Есть ли какие-нибудь примеры java-кодов для создания здания на более высоких LOD?

Большое спасибо за вашу помощь заранее!

1 ответ

Объектная модель citygml4j точно соответствует XML-кодировке CityGML. Таким образом, схемы CityGML XML и документ спецификации CityGML являются полезными.

Посмотрите на следующий фрагмент кода CityGML о здании, имеющем поверхность стены и дверь. Для простоты я опустил любые пространственные или тематические свойства.

<bldg:Building>
  ...
  <bldg:boundedBy>
    <bldg:WallSurface>
      ...
      <bldg:opening>
        <bldg:Door>
        ...
        </bldg:Door>
      </bldg:opening>
    </bldg:WallSurface>
  </bldg:boundedBy>
</bldg:Building>

Обратите внимание, что Door функция связана с WallSurface сквозь opening свойство объекта Аналогично Buildingособенность имеетboundedByсвойство объекта, содержащееWallSurface,

Теперь просто создайте ту же иерархию с объектами citygml4j.

// create building, wall surface and door
Building building = new Building();
WallSurface wallSurface = new WallSurface();
Door door = new Door();

// add door to wall surface through an opening property
OpeningProperty opening = new OpeningProperty(door);
wallSurface.addOpening(opening);

// add wall surface to building through boundedBy property
BoundarySurfaceProperty boundedBy = new  BoundarySurfaceProperty(wallSurface);
building.addBoundedBySurface(boundedBy);

Наконец, добавьте немного геометрии и атрибутов. Например, добавитьgml:MultiSurfaceкак LoD 3 представлениеWallSurface,

MultiSurface geometry = new MultiSurface();
// ... add surface members containing the vertices ...

// add geometry to the wall surface
wallSurface.setLod3MultiSurface(new MultiSurfaceProperty(geometry));

Опять же, как создавать объекты геометрии GML, следует схеме XML. citygml4j поставляется с большим количеством примеров кода. ПроверьтеBuildingCreator.javaобразец, который иллюстрирует, как могут быть созданы геометрии. Но вы также можете заполнять геометрические объекты различными способами.

Надеюсь это поможет.

Другие вопросы по тегам