elevation related properties to their layers
And use this to ensure that wms tiles with maptiler terrain
or terrarium terrain interpretation are always included by
default in elevation profile plots.
Most specifically, this ensures that projects containing the
out-of-the-box "Mapzen Global Terrain" layer will be automatically
included in elevation plots.
* QgsShadingRendering and pipe to render global elevation map
* gdal utils with datatype and resampling method enum
* raster layer elevation map
* optimize raster elevation map with rotation
* handle no data value in the map elevation raster pipe
* mesh layer and some little fixes
* fix nodata and hillshading z factor
* render shading on layout
* activate/deactivate the shading from ui
* shading only for layer that have elevation
* apply Z scale and offset of layer elevation properties
* ui settings
* allow elevation from point cloud even edl is deactivate for pointcloud
* fix ui
* sipify
* Shading renderer widget in styling panel
* icone for shading renderer settings widget
* two methods to combin elevation
* rewording
* remove check box at the bottom of canvas
* use band of elevation properties
* fix styling pannel
* render shading in layout
* keep EDL point cloud shading individually
* add shading rendering tests
* add missing code for local EDL for point cloud
* shading inactive by default
* rework raster layer resampling
* improve nodata in elevation map
* don't allow elevation map with != size to be combined
* remove EDL from point cloud
* renaming
* sipify
* colorize tests
* renaming
* RGB32
* renaming leftover
* some ui fixes
* fix border for EDL alg
* fix EDL closed next to nodata value
* fix first shading when activated
* renaming and typo
* fixes for doc, doxygen, indentation and spelling
* remove leftover member
* fix clang-tidy
* fix edl tests
* fix dll export
* minor fixes
* adapt images of tests
* fix narrowing
* fix indentation
* sipify
* WIP
* minor ui changes
* PointCloudLayerExporter class
* set points limit
* saveas dialog
* qickndirty task
* wip
* add pdal files
* transform context
* add getters
* try to use some subclasses
* use nested classes
* don't default layername
* limit supported formats
* error reporting
* limit formats in gui too
* format filters and source/target crs
* use default infinite extent
* set pdal crs
* add pdrf but keep 3 for now
* properly handle LAZ attributes
* catch coordinate transform exceptions
* use default destructor, fix leak, docs
* trim includes, fix typos
* use qgsspinboxes, add points limit to the gui
* fix limit exporting logic
* avoid auto
* fix builds
* don't reuse lastVectorFormat setting
* Rework layer name handling
* Rage against the elevation
* invert attribute activation logic
* use wkt for laz srs
* use original offset/scale if not reprojecting
* move created memory layer to main thread when done
* allways add memory layer to map
* oops
* properly handle existing vector files
* don't add layer if cancelled
* create the memory layer on the main thread
* remove colon
* remove duplicate code and avoid crashing on mesh and vectortiles
* fix leak
* handle case blunder
* address review
QgsProviderSqlQueryBuilder provides an interface for creation of SQL queries, which
can be overridden for backend provider specific SQL syntax.
Initially add a virtual method for creation of row limited select *
queries.
Contains methods to serialize/deserialize colors from xml and strings,
where the colors are losslessly stored/restored.
The previous methods for storing colors (Eg QgsSymbolLayerUtils::encode/decodeColor)
are lossy, and only store QColors as 8 bit RGB representations. In
contrast, the new methods store the full lossless representation of
a QColor, including support for 16 bit color components, extended
RGB color components, and storage of HSL/HSV/CMYK color specifications
using their original color components instead of RGB components.
When these new methods are used in place of the existing lossy methods,
they open the possibility of 16 bit color support for QGIS symbols/projects,
(and potentially future CMYK color support).
two separate new options
This setting was ambiguous in meaning -- it could be interpreted
as either:
"I don't care about overlapping labels, use them when
you have no other choice"
OR
"I want to see labels for EVERYTHING in this layer, and I don't
care what you have to do to show me those"
This leads to situations like those discussed in #41043, where some
users interpret the setting as the first meaning and get confused
when eg. a curved label line layer starts showing horizontal placements
for some features which couldn't otherwise be labeled (eg short
lines).
So, split the setting into two new options (checkboxes) with explicit, clear
distinction:
- "Allow overlapping labels if unavoidable": This setting means labels
can be overlapping, if there's no other option. It does NOT gaurantee
that all features in the layer will have labels, because other
constraints (such as lines too short to fit a label's text) will still
be respected and may prevent labels for the feature.
- "Allow inferior fallback placements": This mode permits features
to fallback to worse placement options when there's no other choice,
e.g. when a line is too short to fit a curved label text then the
label may be placed horizontally just over the feature's center
point.
The combination of checking BOTH options WILL gaurantee that
all features in the layer are labelled, albeit with both overlapping
labels and the degraded placements!
Fixes#41043