The TestADE is an artificial CityGML Application Domain Extension (ADE) for testing and demonstrating the ADE support of the 3D City Database that has been introduced with version 4.0. It has been designed to cover the most relevant UML modelling elements and techniques that occur in real-world CityGML ADEs such as subtyping or property injection.
This repository provides a reference implementation of an ADE extension that is required by the Importer/Exporter tool to handle TestADE datasets and manage them in the database. The reference implementation shows developers how to implement the ADE-specific APIs of citygml4j (see
test-ade-citygml4j module) and of the Importer/Exporter (see
test-ade-citydb module). Since the TestADE reflects commonly used ADE modelling elements, the provided code may serve as template for implementing extensions for other ADEs.
General steps for supporting an ADE with the 3DCityDB
Adding support for a CityGML ADE to the 3DCityDB generally involves three steps:
- Mapping the XML Schema definition of the ADE to a relational schema that integrates with the 3DCityDB core schema (for instance, by reusing
SURFACE_GEOMETRYto store surface-based spatial properties of features).
- Creating an XML-based schema mapping file that captures the mapping between elements of the XML schema and elements of the relational schema (see the schema mapping between the CityGML XML schemas and the 3DCityDB core schema).
- Registering the ADE with the metadata tables of the 3DCityDB.
With the ADE Manager Plugin we provide a tool that fully automates these steps. It reads the XML schema and applies a rule-based transformation to derive a relational schema for the ADE that seamlessly integrates with the 3DCityDB. Users can redefine default rules or even add new rules, and thus have full control over the mapping result. You can easily test the mapping and registration with the XML Schema of the TestADE.
Once your ADE is registered with the 3DCityDB, you can import or export data from the new ADE tables with a tool of your choice. If you prefer using the Importer/Exporter for this purpose, you have to implement an ADE extension against its ADE API because it does not provide generic ADE support yet. This involves the following two steps:
- Creating an ADE module for citygml4j, which is used by the Importer/Exporter for parsing and writing CityGML data.
- Implementing the
ADEExtensioninterface of the ADE API and providing code for reading and writing data into the ADE tables.
These steps are not automated yet and thus require coding. Check this repository for a reference implementation of the TestADE. ADE extensions have to be copied into the
ade-extensions folder within the installation directory of the Importer/Exporter to
be automatically loaded at program startup.