New QGIS and 3D visualisation
Update: Now you can read also about displaying 3D buildings and CityGML in QGIS
If a picture is worth a thousand words than a 3D image is worth twice as much. That’s why a couple months ago I’ve written about qgis2threejs, QGIS plugin that visualises terrain data in three dimensions.
Some time has passed since then but 3D tools in GIS software are still considered a novelty. The latest development in this area is a new version of QGIS. Now, this popular open source software has native tools for 3D visualisations.
Since I’ve heard about a new version coming, I’ve been waiting to try its new interface enabling work in 3D.
However, as with any other newly implemented solutions, I’ve encountered some glitches.
Read below and find out what works well and what needs to be improved.
3D visualisation in QGIS
In QGIS 3.0, a separate interface is responsible for 3D data visualisation. It’s called the 3D map view and is accessed from View context menu. After selecting this option, a new window opens and you can dock it to the main panel.
The new window shows all the layers that are visible in the main map view and at the same time, it renders digital elevation and vector data in 3D. In this window, you can represent trees as 3D points, extrude building footprints and add 3-dimensional symbol models to the map.
In other words, you are able to create and display a true 3D map using only QGIS.
First test- terrain visualisation
- DEM- SRTM digital elevation dataset in GeoTIFF format from USGS EarthExplorer
- Texture- Google Satellite loaded as XYZ tiles layer (it could be e.g. georeferenced PDF as well)
The greatest advantage QGIS 3.0 has over external plugin is the simplicity of use. To switching from 2D to 3D mode, just go to View menu (View->New 3D map view).
Note: To be able to use the 3D window, project’s CRS has to be in metres/ feet.
First, add DEM and texture layer, then open 3D map view and click Configure button in the left-hand corner.
Under Elevation drop-down list choose DEM layer. Simple as that. Accept changes and pan/rotate the view to see the whole scene in 3D.
Note: I found that the default values provided in 3D Configure window don’t work that well. When working with big areas I recommend to increase Tile resolution from default 16px. The tiles will load much quicker and they will be displayed more smoothly.
To emphasise the relief, set Vertical scale number to more than 1.
I found it useful to change also Skirt height value. With default 10 map units, white cracks between the tiles were visible. After increasing it to 30, the terrain had no more breaks in the display.
More about terrain configuration options here.
Tip: I’ve noticed that texture is not always automatically draped over DEM or updated, even if it’s set to visible in Layers panel. What helps:
- Turn the texture’s visibility off and on after you specify DEM layer
- Turn off the visibility of DEM layer from Layers panel
Second test- 3D building rendering
- Building shapefile with heights- Viennese building data
- DEM- again, downloaded from EarthExplorer
This is a feature I’ve been most excited about. And as it often happens, high expectations have led to disappointment.
But first things first. To enable 3D render of a vector layer, go to Layer Styling panel or open building layer’s Properties. From there choose 3D view tab and check Enable 3D render box. The best description of the 3D view settings I found is here.
To begin with, I tried the simplest case. I worked with one building only. The steps to represent it in 3D were as follows:
- Check the elevation value under the object (read it from DEM)
- Enter this value as Height in 3D view tab
- Under Extrusion enter the value that will determine the height of the building
- Set Altitude Clamping to Absolute
After accepting the changes, the problem with 3D render function was revealed.
Every time I switched to 3D view, QGIS crashed. I didn’t have a chance to try it on a different computer, so if it works for you, please let me know.
Bonus- 2.5D building rendering
After the failure of 3D render I started to look for a solution online and instead, I found a description of 2.5D functionality in QGIS.
It’s not a new feature, it has been introduced already in QGIS 2.14. Somehow I overlooked it before, so I decided to try it instead 3D render.
This function gives an oblique view 3D effect based on a height attribute and an angle.
You can find 2.5D rendering under Symbology tab of a vector layer. Simply change Single symbol to 2.5D in the drop-down list.
In the new window, change a few basic settings to create 2.5D representations of the buildings.
It’s not full 3D representation, but still, the result looks not bad. I’m particularly glad that different heights of the buildings were clearly visible.
The DEM visualisation function in QGIS 3.0 is a great tool for creating 3D maps. It can successfully replace external plugins like qgis2threejs.
When it comes to 3D vector render, I can’t say much about it. I was pretty disappointed that it’s not working on my laptop and I hope the issue will be eventually fixed.
On the bright side, the 2.5D effect works well and it can be used to simulate 3D visualisation.