Giter Site home page Giter Site logo

citygml4j / iur-ade-citygml4j Goto Github PK

View Code? Open in Web Editor NEW
6.0 4.0 2.0 12.27 MB

i-Urban Revitalization ADE module for citygml4j

License: Apache License 2.0

Shell 0.03% Batchfile 0.03% Java 99.94%
citygml ade iur urban planning revitalization citygml4j

iur-ade-citygml4j's Introduction

build release maven license

citygml4j - The Open Source Java API for CityGML

citygml4j is an open source Java library and API for OGC CityGML. citygml4j makes it easy to parse, process, and write CityGML datasets and to develop CityGML-aware software.

The library consists of a citygml4j-core module that provides Java classes for processing CityGML data based on the CityGML 3.0 Conceptual Model, helper classes for working with the model classes, and an extension API for implementing support for CityGML ADEs.

Serialization modules on top of the core add support for parsing datasets with different file formats and encodings into the model classes and writing them back out again.

License

citygml4j is licensed under the Apache License, Version 2.0. See the LICENSE file for more details.

Latest release

The latest release of citygml4j is 3.2.0.

Download the latest citygml4j release binaries here. Previous releases are available from the releases section.

Contributing

  • To file bugs found in the software create a GitHub issue.
  • To contribute code for fixing filed issues create a pull request with the issue id.
  • To propose a new feature create a GitHub issue and open a discussion.

Building

citygml4j requires Java 17 or higher. The project uses Gradle as build system. To build the library from source, clone the repository to your local machine and run the following command from the root of the repository.

> gradlew installDist

The script automatically downloads all required dependencies for building the modules. So make sure you are connected to the internet.

The build process creates the output files in the folder build/install/citygml4j with the following subfolders:

  • javadoc -- the Javadoc documentation
  • lib -- the citygml4j module files and mandatory dependencies
  • license -- license information
  • samples -- a collection of citygml4j sample programs

Simply put the citygml4j module files and the mandatory dependencies from the lib folder on your modulepath to start developing with citygml4j. Have fun :-)

Maven artifacts

The citygml4j modules are also available as individual Maven artifacts from the Maven Central Repository. Each serialization module has a dependency on the citygml-core module, but you can also use the core module alone.

For example, to add citygml4j-xml to your project with Maven, add the following code to your pom.xml. You may have to adapt the citygml4j version number.

<dependency>
  <groupId>org.citygml4j</groupId>
  <artifactId>citygml4j-xml</artifactId>
  <version>3.2.0</version>
</dependency>

Here is how you use both citygml4j-xml and citygml4j-cityjson with your Gradle project. Make sure to use the same citygml4j version for both modules to avoid conflicts.

repositories {
  mavenCentral()
}

dependencies {
  implementation 'org.citygml4j:citygml4j-xml:3.2.0'
  implementation 'org.citygml4j:citygml4j-cityjson:3.2.0'
}

Sample programs

citygml4j provides a number of sample programs to demonstrate the use of the library. Download and unzip a release or build the library from source as described above. Afterwards, the sample programs are located in the samples folder.

The source code of the sample programs is provided as Gradle project and organized into Java packages under src/main/java in the samples folder. Each package addresses a different use case of citygml4j. Predefined Gradle tasks let you easily compile and run the sample programs.

To run a sample program, simply open a shell environment, change to the samples folder and invoke the Gradle wrapper using the fully qualified name of the Java class as task name. For example, issue the following command to run the SimpleReader program from the reading_citygml package:

> gradlew reading_citygml.SimpleReader

Alternatively, you can load the citygml4j source into your preferred IDE and run the sample programs from there. The source code of the sample programs is provided as separate citygml4j-samples module. The easiest way to execute the programs is again to use the predefined Gradle tasks. If you prefer to directly run the classes instead, note that the classes use relative paths to access test datasets and write output files. You might have to adapt the working directory in the run configuration of your IDE so that the relative paths are resolved correctly. For example, when using IntelliJ, simply use $MODULE_DIR$ as working directory.

More information

OGC CityGML defines a common semantic information model for the representation of virtual 3D city models. The information model can be implemented in a variety of technologies such as GML/XML, JSON or as database schema to enable the storage, management, and exchange of 3D city models and to facilitate the integration of urban geodata for a variety of applications for Smart Cities and Digital Urban Twins.

CityGML is an International Standard issued by the Open Geospatial Consortium (OGC) and can be used free of charge. The development of CityGML is open to everyone and takes place on the OGC GitHub repository.

iur-ade-citygml4j's People

Contributors

clausnagel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.