Let’s start using Qgis2threejs plugin!

Install the plugin

Open the Plugin Manager (Plugins > Manage and Install Plugins...) and install Qgis2threejs plugin.


Need help? See the 10.1. Installing and Managing Plugins section of the QGIS training manual.

Obtain elevation data

If you already have raster DEM data, you can skip this step.

NASA published elevation data generated from NASA’s Shuttle Radar Topography Mission digital topographic data. We can use the data freely. Elevation data version 2.1 can be downloaded from the distribution site.

Download a zip file that contains elevation data of the area you are interested in from under the version2_1/SRTM3 directory. The zip file contains a .hgt file, which is readable by the GDAL.


Do you have time to explore new high-resolution SRTM elevation data? You can download 1 arc-second SRTM data from the EarthExplorer (User registration required).

Load DEM data

Unzip the downloaded zip file, and then drag & drop .hgt file to QGIS window.

CRS setting

Horizontal unit of SRTM data is degree, whereas vertical unit is meter. For appropriate visualization, you need to transform the DEM data to a projected CRS. QGIS can perform the CRS transformation on the fly.

So, let’s change the current project CRS to a projected CRS.

Click the CRS status icon crs_icon in the bottom-right corner of the window to open the project properties dialog, and then select a suitable CRS for the DEM extent. If you don’t know which CRS is best suited, select the Spherical Mercator projection (EPSG:3857), which is adopted by many web maps.


In the Spherical Mercator projection, every feature size is horizontally larger than actual size except those of features on the equator. At latitude 40 degrees it is enlarged 1.3 times, at 60 degrees enlarged twice.

Layer styling

Open the Layer Properties dialog for the DEM layer and colorize the DEM layer richly.

An example (Singleband pseudocolor render type and inverted BrBG color map):


Open the Exporter

Zoom to a part of the DEM layer extent as the map canvas is filled by the colorized DEM layer, and then click the plugin icon plugin_icon in the web toolbar to open the Qgis2threejs exporter.

There is Layers panel on the left side of the window, which lists map layers in current QGIS project. Layer items are grouped into DEM, Point, Line and Polygon. DEM layer group has 1-band raster layers (GDAL provider) in current QGIS project and Flat Plane (a flat plane at zero altitude).

There is a preview on the right side. Now scene doesn’t contain any 3D objects.

Let’s add the DEM layer into the scene. Just click the checkbox on the left of the DEM layer under the DEM layer group.


A 3D terrain object with map canvas image draped on it shows up in the preview.

Exporting the Scene to Web

Click on the File - Export to Web... menu entry to open this dialog.


Select a directory to export the scene, check Enable the Viewer to Run Locally option and press Export button.


Many web browsers do not allow loading data files on local file system via Ajax. With Enable the Viewer to Run Locally option the plugin outputs geometry and image data into a js file.


Open the .html file with a web browser. You can see exported scene in web browser.


You can publish the exported viewer and data just by uploading the generated folder to a web hosting service such as Netlify and GitHub Pages.


Please do not forget to ensure that you comply with the Terms and use for the data before publishing the data to the web.

Save the Scene as glTF

Are you satisfied with the scene rendering of Qgis2threejs web application? No? If so, let’s export the scene to a glTF file. The glTF (GL Transmission Format) is a file format for 3D scenes and models (Wikipedia). You can load it to 3D graphics softwares that can render high quality graphics such as Blender.

Here we export the scene to a glTF file and load it into the three.js editor.

Click on the File - Save Scene As - glTF (.gltf, .glb) menu entry, and select a filename to save the 3D model.

When the model has been saved, a message will be displayed at the top of the exporter window. Then, Click here to open the three.js editor.

Click on the File - Import menu entry and select the exported .gltf file to load it to the scene.

As there is no light, the object looks black. Click the Add - DirectionalLight menu entry to add a directional light to the scene.


In Conclusion

Tutorial is over. Now you know 3D visualization with QGIS is very easy. If you can use high-quality data, you can create beautiful 3D scenes!


Next, how about adding a background map layer to the map canvas. You can do it easily with QuickMapServices plugin. Also, how about adding vector data to the scene. Object Types page has example images of various object types. See Exporter for the detail.