Skip to content

[Elevation profile] Add ability to render point cloud data as continuous elevation line (Request in QGIS) #10727

@qgis-bot

Description

@qgis-bot

Request for documentation

From pull request qgis/QGIS#64177
Author: @ViperMiniQ
QGIS version: 4.0

**[Elevation profile] Add ability to render point cloud data as continuous elevation line **

PR Description:

This PR adds the ability for the elevation profile of a point cloud layer to display a continuous elevation line (like vector or raster layers) instead of individual points.

Z values for the elevation line are derived from triangles - Delaunay triangulation is performed on the points within the selection zone (selection curve + tolerance buffer), and Z values are interpolated from the triangles that intersect the midpoint of the selection curve.

An option to extract the height from the triangulated surface has been added to the Elevation section of the layer properties. Here, users can choose to extract elevation data either directly from individual point cloud points or from the triangulated surface.
The quality of the elevation line depends on the user’s selection: if a small number of points is included (for example, when a low tolerance setting is used), the resulting triangles may be of low quality and thus the elevation line won’t be as good. Users can adjust the tolerance setting to improve results. Triangulating the whole layer, especially considering the size of some datasets, can be too much, so this was chosen for the method.

The file delaunator.hpp had to be modified to make all functions inline - otherwise, the linker would complain. Is modifying 3rd party library acceptable, or would it be better to create a wrapper instead?

When experimenting with the elevation profile, you can configure a layer to use all or a subset of points within the selection zone (adjusted in symbology).

You can also duplicate the layer, apply different symbology to it, and set it to render a subset of points. For example, it’s possible to use the same dataset twice in the elevation profile—one layer displaying all attributes and another showing only ground points. Doing that, you end up with something that looks like this:

image image

Edit: fixes #64761

Commits tagged with [need-docs] or [FEATURE]

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions