55 Commits

Author SHA1 Message Date
Nyall Dawson
f9c3da1e06 Move unit enums to Qgis, promote to enum class 2023-02-19 13:29:06 +10:00
Vincent Cloarec
3ca858af66
Global map terrain shading (#51535)
* 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
2023-01-26 15:02:16 +01:00
Nyall Dawson
2e960aaeed Add map frame rate and current frame numbers to QgsMapSettings/QgsRenderContext
Makes this information available for symbol rendering logic when
a map is being rendered as part of an animation.
2022-03-27 15:40:05 +10:00
Vincent Cloarec
9965eccdce
Template parameter {usage} for XYZ raster and vector tiles (#46731) 2022-01-13 15:11:31 +01:00
Nyall Dawson
a5b9c7b9a5 Add API to "expand" out group layer children when querying QgsMapSettings
for layers

There's two reasons why someone would be calling this method:
- to determine which layers should be rendered by a render job
- to determine which layers are actually visible in the map

Depending on which is required, we either want to expand out
groups and remove the group layer itself from the list (or not)
2021-11-24 07:29:31 +11:00
Juergen E. Fischer
c6008b7ee1 fix MSVC build: reverts fee62e4, dff05dd and e3a77b9484c effectivly
reverting 3fb0f66 (followup #45348)

Using --no-public-is-protected (default on Windows) also works on Linux
and fixes #45331 too
2021-10-21 23:03:48 +02:00
nirvn
ef84e48a09 Run sipify_all.sh 2021-10-12 16:34:05 +10:00
Denis Rouzaud
ec16736306 run sipify 2021-10-12 16:34:05 +10:00
Nyall Dawson
0ab6113e88 Promote QgsMapSettings and QgsRenderContext enums to enum class, move to Qgis 2021-09-26 11:24:51 +10:00
Julien Cabieces
33ea556c0f fix version 2021-09-14 15:51:13 +10:00
Julien Cabieces
655c02afe4 Fix GetMap tile_buffer when labels are rotated 2021-09-14 15:51:13 +10:00
Andrea Giudiceandrea
deb516d584 Fix typo in QgsMapSettings::visibleExtent() doc 2021-07-21 14:14:46 +10:00
Sandro Mani
73c61b6e25 Add QgsMapSettings::computeExtentForScale and QgsMapSettings::computeScaleForExtent 2021-07-02 14:29:14 +02:00
Mathieu Pellerin
8299547682 Address review 2021-05-03 20:43:37 +07:00
Mathieu Pellerin
8d1371f3e9 [layouts] Respect XYZ output zoom level when previewing map items in the layout designer 2021-05-03 18:01:24 +07:00
Denis Rouzaud
ba8a445850 run sipify 2021-03-22 21:13:52 +01:00
Nyall Dawson
50b9beaad6 [sipify] Catch more class references and insert :py:class: annotations 2021-01-31 05:41:22 +10:00
Nyall Dawson
538a5ecefd Improve docs to make it clearer that QgsMapSettings::visibleExtent
is probably what you want, not QgsMapSettings::extent...
2021-01-19 11:04:55 +10:00
Nyall Dawson
f6f03cd8e1 [api] Add z range filtering option to QgsMapSettings/QgsRenderContext/QgsMapCanvas
Allows for map renders to be filtered by a z or elevation range,
such that only parts of the layer which are considered within
this range will be rendered.

Implements https://github.com/qgis/QGIS-Enhancement-Proposals/issues/201

*Requires support for respecting the QgsRenderContext zRange to be added
to the relevant map layer renderers
2020-11-26 04:18:01 +10:00
nirvn
e951aead53 Fix QgsMapSettings {mapToLayer,layerToMap}Coordinates failing with points having a nan z value 2020-10-15 10:49:58 +07:00
Nyall Dawson
f496173bd7 Fix messy doxygen blocks which mess with sipify script
Fixes #38291
2020-08-20 17:01:35 +10:00
vcloarec
f7a16c5fd3 fix doc and pass map tool reshape test 2020-07-29 12:49:44 -04:00
vcloarec
56787d63d0 fix SIP end doc 2020-07-29 12:49:44 -04:00
Nyall Dawson
9e1cddaa8e Add render context flag to use when a map render job is part of a 3d map 2020-07-29 04:21:56 +10:00
Nyall Dawson
b2cef7377c [feature][layouts] Expose option to control PDF image compression
method when exporting layouts to PDF

Options are for Lossy compression, which is the default JPEG compression
used, and Lossless compression (which creates bigger files in most
cases, but is much more suitable for professional printing outputs
or for post-production in Illustrator/etc)

The Bad news: this option is available in builds based on Qt 5.14
or later.
2020-07-05 15:40:48 +10:00
Nyall Dawson
bbd5d80e71 Add method to set a list of clipping regions for QgsMapSettings 2020-07-02 12:07:51 +10:00
Nyall Dawson
e38bb541a6 Add clipping regions to QgsMapSettings/QgsRenderContext API 2020-07-02 12:07:51 +10:00
Nyall Dawson
81a9db9f57 [sipify] Fix creation of cross references 2020-06-15 13:43:58 +10:00
Juernjakob Dugge
4094d1800d Re-center the map when zooming with active scale lock
Fixes #30023
2020-06-02 14:23:07 +10:00
Samweli
b30ccf3289 fixed travis tests 2020-03-05 18:41:35 +10:00
Samweli
6352d6889c added abstract temporal class
updates on tests and abstract temporal class

updates on qgsabstracttemporal sip and tests

update qgsabstracttemporal test

updated docs

moved qgsabstracttemporal class to qgstemporalrangeobject class as per review suggestions

edits per review on qgs map canvas

remove access of private members from qgstemporalrangeobject

updated render context test and fix travis tests

added new temporal property class

added tests for temporal property

added tests for temporal property

added temporal widget ui

temporal support in raster layers, from wms provider

temporal properties in raster layer properties

added abstract temporal class

updates on tests and abstract temporal class

updates on qgsabstracttemporal sip and tests

update qgsabstracttemporal test

updated docs

temporal support in raster layers, from wms provider

update qgsabstracttemporal test

updated docs

moved qgsabstracttemporal class to qgstemporalrangeobject class as per review suggestions

edits per review on qgs map canvas

updated render context test and fix travis tests

added new temporal property class

added new map layer temporal properties sub classes with tests

updates on map layers temporal properties classes

fix travis tests

add read and write xml tests

added abstract temporal class

updates on tests and abstract temporal class

updates on qgsabstracttemporal sip and tests

update qgsabstracttemporal test

updated docs

edits per review on qgs map canvas

temporal properties in raster layer properties

temporal support in raster layers, from wms provider

moved qgsabstracttemporal class to qgstemporalrangeobject class as per review suggestions

edits per review on qgs map canvas

remove access of private members from qgstemporalrangeobject

updated render context test and fix travis tests

added new temporal property class

added new map layer temporal properties sub classes with tests

updated layer times ui

added advanced options in layer time constrains ui

fix for refreshing wms layer after temporal properties update

update on wms-t temporal properties

added support for bi-temporal WMS-T
2020-03-05 18:41:35 +10:00
Samweli
618f257874 moved qgsabstracttemporal class to qgstemporalrangeobject class as per review suggestions 2020-02-08 08:26:21 +03:00
Samweli
62efb55af2 updates on tests and abstract temporal class 2020-02-08 08:26:21 +03:00
Sandro Mani
d604ab72f4 Add QgsRenderContext::setCustomRenderingFlags and QgsMapSettings::setCustromRenderingFlags 2020-01-22 10:38:44 +01:00
rldhont
6625c7ba62 [Bugfix] Get remote SVG synchronously - in the server context 2019-10-11 14:08:17 +10:00
Nyall Dawson
c71cd4b5fc Initial work on rendered feature handler interface
Adds an interface for classes which provider custom
handlers for features rendered as part of a map render job.

QgsRenderedFeatureHandlerInterface objects are registered
in the QgsMapSettings objects used to construct map render
jobs. During the rendering operation, the handleRenderedFeature()
method will be called once for every rendered feature, allowing
the handler to perform some custom task based on the provided
information.

They can be used for custom tasks which operate on a set of
rendered features, such as creating spatial indexes of the
location and rendered symbology bounding box of all features
rendered on a map.
2019-08-07 21:53:16 +10:00
Nyall Dawson
615e245b18 Add method to specify global vector simplification overrides on a
QgsMapSettings object

If specified (they default to off), these simplification settings
will override any layer-specific simplification settings, and
provide a way for specifying a global simplication to apply
to vector layers while exporting maps.
2019-08-07 15:57:26 +10:00
Éric Lemoine
0b87041b31 Improve the extentBuffer API docs 2019-06-19 09:32:44 +02:00
Éric Lemoine
23872fcc41 Improve the API docs 2019-06-18 14:48:23 +02:00
Nyall Dawson
b6d66becab Sipify 2019-02-27 09:41:11 +10:00
Nyall Dawson
cd762da817 Doxygen 2018-12-15 11:28:56 +10:00
Nyall Dawson
d8eac4797e [FEATURE][API] Add method to QgsMapSettings for specifying label blocking regions
These represent areas of the map where NO labels should be placed
2018-12-15 11:28:56 +10:00
Nyall Dawson
4252aabe00 [FEATURE][API] Add option to specify a custom boundary geometry
in QgsMapSettings to restrict where labels are allowed to be placed
within.

If set, this overrides the default behavior of allowing labels to
be placed anywhere inside the rendered map extent.
2018-12-15 11:28:56 +10:00
Nyall Dawson
7ed4218b00 [needs-docs] Upgrade project level setting for Label as Outlines/text setting to use newer API
And replace labeling engine dialog "Draw text as outlines" checkbox with a combobox
presenting the choice of always rendering as outlines OR text.

(This will allow us to easily add additional methods in future, e.g. potentially
a "Render as text wherever possible" setting, for defaulting to text objects
whenever it doesn't impact the rendering quality to do so)
2018-12-11 12:28:29 +10:00
Nyall Dawson
1eaf95a866 [api] Move setting to control how text is rendered to QgsRenderContext
The new QgsRenderContext::TextRenderFormat enum controls how text
should be handled during a render operation, e.g. whether to render
text as outlines (paths) or keep it as real text objects.

Deprecate previous arguments in QgsTextRenderer which handled
this same use case.

This allows us to make the setting vary per-render, instead of
having a single global flag controlling the setting. Ultimately
this will allow us to have different behaviour within the
canvas renders vs print layout exports.

Refs #3975
2018-12-11 12:28:29 +10:00
Denis Rouzaud
ff1face71d more dox 2018-10-19 13:46:10 -04:00
Denis Rouzaud
b4e87d873e use float precision 2018-10-19 10:07:05 -04:00
Denis Rouzaud
09d2260b86 rename physicalSize to deviceOutputSize 2018-10-19 09:53:42 -04:00
Denis Rouzaud
ea982fe3d2 [fix #17773] fix HiDPI in map canvas on mac
For system introducing pixel device ratio, the image rendered by the canvas is actually scaled up to match the physical size of the canvas"
2018-10-19 08:50:12 -04:00
Denis Rouzaud
4b7da692d6 run sipify all 2018-09-10 11:41:57 -04:00