citygml4j - A Java class library for CityGML¶
citygml4j is a Java class library and API for facilitating work with the City Geography Markup Language (CityGML). citygml4j makes it easy to read, process, and write CityGML datasets, and to develop CityGML-aware software applications.
CityGML is an OpenGIS® Encoding Standard for the representation, storage, and exchange of virtual 3D city and landscape models issued by the Open Geospatial Consortium (OGC). It is implemented as an application schema of the Geography Markup Language version 3.1.1 (GML3).
citygml4j binds the XML Schema definitions of CityGML to a well-defined Java object model. CityGML instance documents are deserialized into a tree of corresponding Java objects representing the content and organization of the instance document. This XML binding approach allows Java developers to incorporate CityGML data and processing functions in Java applications without having to know XML or low-level XML processing APIs. Instead of thinking about parsing XML data, developers can focus on the business logic and work with well-defined CityGML objects. After processing the CityGML data, the Java content tree can be easily serialized back into a CityGML instance document.
Starting from version 0.1.0 of citygml4j, the XML data binding approach is implemented based on the Java Architecture for XML Binding (JAXB). JAXB is being developed under JSR 222 and is part of Java SE 1.6. A JAXB reference implementation as well as further documentation, tutorials, and source code examples can be found at http://jaxb.java.net/.
citygml4j is open source and released under the terms of the GNU Lesser General Public License v3 (LGPL).
- Full support for CityGML version 2.0.0 and 1.0.0
- Read-only support for CityGML version 0.4.0
- Support for CityGML specific subset of GML 3.1.1
- Support for the eXtensible Address Language (xAL)
- Support for converting between different CityGML versions
- Integration of user-defined CityGML Application Domain Extensions (ADE)
- Implementation of XML data binding based on JAXB
How to use citygml4j¶
- Download the citygml4j library.
Please refer to the instructions on the Download page in order to obtain the binary releases or the source code of citygml4j.
- Make sure you are using a supported Java version.
- Put the citygml4j library in your classpath.
- Ensure that any libraries required to satisfy dependencies are also in the classpath.
- See code examples and documentation in the tutorials for getting started.
- You have found a bug or want to request a new feature? Please read this guide.
The Tutorials page contains documentation on the usage of citygml4j in your Java applications. The tutorials should be your starting point to get in touch with citygml4j. They include both basic and advanced source code examples along with detailed discussions. The tutorials are work-in-progress.
- Browse the citygml4j version 2.0ea API Javadoc
- Supporting documentation on CityGML can be found in the Documents section
- Source code examples are shipped together with the citygml4j library and can be obtained from the Files section
Are you using citygml4j? Feedback wanted!¶
Please contact us through email@example.com if you are using citygml4j in your software developments no matter whether you are building commercial, scientific, or any other type of application. We are also interested in code snippets showing how citygml4j can be used to solve a specific problem. We are happy about your feedback! Optionally, we can add a link to your web page and developments here.
Resources & links¶
- Official website of the IGG at TU Berlin: http://www.igg.tu-berlin.de
- Official CityGML website: http://www.citygml.org
- CityGML Wiki: http://www.citygmlwiki.org
- Official CityGML section of the OGC website: http://www.opengeospatial.org/standards/citygml
- JAXB reference implementation, documentation, tutorials, and source code examples: http://jaxb.dev.java.net/