Skip to content

cityjson/cityjson-qgis-plugin

Repository files navigation

This fork of cityjson-qgis-plugin includes fixes, improvements and support for new features

Key Updates:

  • New feature(s):

    • Multi-File Loading: The plugin now supports processing multiple CityJSON files at once. The GUI has been modified to allow the selection and display of multiple files in a dynamic list. When a file is selected from the list, its metadata is dynamically updated in the metadata field.

    • Control Inheritance of Attributes: Added a CheckBox to control whether child objects inherit parent attributes.

    • LoD Selection: Added a ComboBox to select a specific LoD to import (e.g., "All", "1.2, "1.3", "2.2", etc.).

    • New semantic surface attributes: Support for additional semantic surface attributes when loading a CityJSON file using option Load semantic surfaces (as individual features). Compatible with CityJSON files generated by 3DBM-Plus, a custom version of 3d-building-metrics.

      Reference: Anna Labetski, Stelios Vitalis, Filip Biljecki, Ken Arroyo Ohori, & Jantien Stoter (2023). 3D building metrics for urban morphology. International Journal of Geographical Information Science, 37(1): 36-67. DOI: 10.1080/13658816.2022.2103818.

  • Fixes & Improvements:

    • Fixed error: 'QgsPolygon3DSymbol' object has no attribute 'setMaterial'.
    • Fixed an issue where empty layer(s) with [LoD: None] were unnecessarily created when the option to load LoD "As layers" was selected.
    • Removed the behavior where a group layer was created even when only a single layer was loaded.

Installation

Open the Command Prompt (CMD) and navigate to the directory where your QGIS plugins are stored. For example:

C:\Users\<user>\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins

If you're unable to find this directory:

  • Launch QGIS 3.
  • Go to Settings->User Profiles->Open Active Profile Folder
  • This will open the folder containing your plugins.

Once you're in the correct directory, run the following Git command to install the plugin:

git clone -b main https://github.com/FLeroux23/CityJSON-loader

To update the plugin later, use the following command:

git pull origin main

CityJSON Loader for QGIS 3

This is a Python plugin for QGIS 3 which adds support for loading CityJSON datasets in QGIS.

Installation

"Stable" releases are available through the official QGIS plugins repository.

  • In QGIS 3 select Plugins->Manage and Install Plugins...
  • In the All panel select the CityJSON Loader plugin from the list.

Use

After the installation, there must be a new submenu under the Vector menu. Select CityJSON Loader->Load CityJSON... in order to open the CityJSON dialog window. You can select a dataset and add it from there.

You may enable the Split layers according to object type option in order to load different object types as different layers in QGIS.

3D view in QGIS 3.0

CityJSON Loader automatically enables 3D renderer in QGIS versions 3.2 onwards. However, if you are using QGIS 3.0 you have to enable it manually. This can be done as follows:

  • Right-click on the layer and select Properties...
  • Select the 3D View panel and check the Enable 3D renderer option.
  • In QGIS 3 menu select View->New 3D Map View in order to see the 3D geometry.

Development

You may use make to assist you while developing.

The following rules can be useful:

  • make deploy: will automatically copy the required files to your QGIS plugins' folder. BEWARE: it only works out-of-the-box for macOS. For other operating systems you might have to change the QGISDIR variable in Makefile.
  • make package VERSION=GIT_REF: (where GIT_REF is a branch, tag or any other git ref) will make a zip package to be installed manually from QGIS or uploaded to the QGIS plugins' repository.