CJDB - A simple and efficient data model to store CityJSON in a database

More Info


A 3D city model uses three-dimensional geometries to represent and model urban environments, in which the building model is the key feature. With the development of computer and data collection technologies, 3D city models are gaining growing capacities regarding storing rich information. This makes 3D city models more potentially useful than ever in the urban application domain.

When implementing 3D city models, the CityGML model is currently the most frequently used standard. It is being used by cities all over the world. CityJSON is an encoding for a subset of the OGC CityGML data model. It is a JSON-based data exchange format for digital 3D models of cities and landscapes, and it is easy for various operations. Due to the uniqueness of its structure, it is necessary to design corresponding data models to store CityJSON files in the database, to make querying and updating data within the database easy and convenient.

There are already some open-source solutions for storing CityJSON files in the database, 3DCityDB is one of them. 3DCityDB can store, manage and visualize data well, and it is open source. But the database design is very complex: for a tile of 3D BAG data, 3DcityDB uses a total of 66 tables to store data. The structure of the data model results in difficulties for database users to understand the imported data, and potentially leads to non-optimal operation performance when retrieving data for urban applications. Based on the drawbacks of the existing DBMS when dealing with the CityJSON data format, this project aims to develop a Postgres data model that can store CityJSON files simply and efficiently. The developed Postgres data model (CJDB) has a simpler table structure and data model design, a CityJSON data importer, and an interactive API user interface.

After going through this document (data model, importer and API section), the potential users will have the ability to:

• Import CityJSON files into a Postgres database,
• Perform queries on imported data,
• Perform operations using CJDB API.

In addition, by reading the benchmarking section, the users can gain an overview of the CJDB’s performance over the 3DcityDB’s.

The CJDB project is open-sourced, available on GitHub page.

The CJDB project will be potentially further developed by 3D geoinformation group of TU Delft and 3DGI.