124 Commits

Author SHA1 Message Date
Nyall Dawson
f7e5347a3a Dox, header cleanups 2020-03-12 20:06:25 +10:00
Samweli
dd129c1aef updates on temporal animation logic 2020-03-12 20:06:25 +10:00
Samweli
99129fe4a8 updates on the temporal controller navigation logic 2020-03-12 20:06:25 +10:00
Samweli
d446c0a223 formatted wms provider code 2020-03-12 20:06:25 +10:00
Samweli
9845ffa591 added tests for changed signal in temporal properties 2020-03-10 10:11:54 +10:00
Nyall Dawson
fa6d62f9dd Minor header cleanups and documentation improvements 2020-03-06 11:56:13 +10:00
Alessandro Pasotti
542c183f00
Merge pull request #34871 from elpaso/pgraster-set-subset-string-app-expose
[feature] PG raster expose set filter to app
2020-03-05 15:34:33 +01:00
Samweli
1abbc2a586 saving and restoring temporal properties 2020-03-05 18:41:35 +10:00
Samweli
391f606f78 moved temporal range from provider to layer temporal properties 2020-03-05 18:41:35 +10:00
Samweli
51b475f689 added checks for possible null temporal capabilities 2020-03-05 18:41:35 +10:00
Samweli
2517b566d1 suggested changes from the review 2020-03-05 18:41:35 +10:00
Samweli
b30ccf3289 fixed travis tests 2020-03-05 18:41:35 +10:00
Samweli
872094cf8a removed status label in temporal properties 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
Alessandro Pasotti
41f6d729a7 PG raster: update since in dox 2020-03-04 16:42:32 +01:00
Alessandro Pasotti
385acae48c PG raster: reset renderer when filter changes 2020-03-04 16:25:50 +01:00
Alessandro Pasotti
71b9b76788 PG raster set subset signals and app 2020-03-04 11:29:30 +01:00
Nyall Dawson
183706ef0a Purge totally completely horribly outdated QgsRasterLayer docs 2020-02-24 20:35:25 +10:00
Nyall Dawson
313b000147 Minor temporal properties cleanups and dox improvements 2020-02-24 20:35:25 +10:00
Samweli
d03716072b add read and write xml tests 2020-02-08 10:19:48 +03:00
Samweli
d9926a9f91 fix travis tests 2020-02-08 08:26:21 +03:00
Samweli
c4355ab8b7 updates on map layers temporal properties classes 2020-02-08 08:26:21 +03:00
Harrissou Sant-anna
27da26bf17 Update qgsrasterlayer.sip.in 2020-01-21 11:40:42 +10:00
Nyall Dawson
41fa4b19fd Fix rendering artifacts on the edges of resampled raster tiles
We now buffer the request for the input to a resample filter by
a variable number of pixels (depending on the resampling type)
in order to fetch the neighbouring pixels to the edges of individual
raster blocks. This allows the resampling to utilise these
neighbouring pixels when resampling the edges of tiles, avoiding
discrepancies and rendering artifacts over the borders of
raster tiles.

Fixes #30152
2019-11-15 13:48:38 +10:00
Matthias Kuhn
b08a7d711c Fix sip file for sip and automoc 2019-11-03 21:20:08 +01:00
Matthias Kuhn
4294dda083 Resipify 2019-11-03 21:05:34 +01:00
Nyall Dawson
5e84033193 Sipify 2019-11-01 14:03:01 +10:00
Nyall Dawson
8c8d76387c Doxy 2019-10-31 12:19:59 +10:00
Nyall Dawson
13e9dd727f Deprecate old QgsRasterResampler interface, and add a new interface
which doesn't require pre-allocation of a temporary QImage

The existing interface is very inefficient for the bilinear resampler,
because it requires allocation of a temporary QImage just to pass
the desired height and width to the resampler...
2019-10-31 12:19:59 +10:00
Nyall Dawson
aa962b5da0 [FEATURE] Add option to set color for rendering nodata pixels in raster layers
Allows raster nodata pixels to be colored in a specific (non-transparent) color.
Designed to match the "Display background value" option from ArcMap.

Sponsored by SLYR

Fixes #26087
2019-10-27 10:07:04 +10:00
Nyall Dawson
1ba8db41b6 Fix potential overflow in raster renderer 2019-10-26 06:45:11 +10:00
Denis Rouzaud
758d7cff4a run sipify to update deprecation annotations 2019-10-15 13:17:38 +02:00
Nyall Dawson
3112332227 Rename variable for clarity 2019-10-09 15:01:51 +10:00
Nyall Dawson
cb06519d16 [api] Add API to indicate that individual layers may be loaded without any
CRS validation, regardless of the user's settings

This avoids hacks put in place in other parts of QGIS code or in plugins
to temporarily deactivate the CRS validation prompt, providing a supported,
stable method to indicate that when loading a particular layer no CRS
validation is required.
2019-10-09 15:01:51 +10:00
Nyall Dawson
f5c21a0fbd Optimize QgsContrastEnhancementFunction
Allow some methods to be inlined, and precalculate maximum/minimum values
possible instead of recalculating them for every pixel
2019-09-27 08:21:26 +10:00
Even Rouault
5e70084d32 QgsRasterFileWriter: improve error reporting 2019-09-17 08:58:25 +10:00
Alessandro Pasotti
631ac63e57 Call QgsRasterBlock destructor from SIP (add factory)
Fixes #31343 memory leak
2019-08-23 06:32:32 +10:00
Nyall Dawson
286b967917 Consistent dox 2019-08-07 10:40:30 +10:00
Nyall Dawson
35fc3799cd Dox++ 2019-08-07 06:26:04 +10:00
Nyall Dawson
b4c4c99250 Improve QgsRasterLayer dox 2019-08-07 06:26:04 +10:00
Nyall Dawson
e3fbe28148 Fix incorrect /Factory/ annotation 2019-08-06 21:31:59 +10:00
Matthias Kuhn
e51a3babb7 Move WMS ignore extents to service level 2019-07-24 12:41:31 +02:00
Matthias Kuhn
6ae23a180e [FEATURE] Allow rendering raster layers outside the reported extent
The extent reported by raster layers may be smaller than the area
which can be rendered.
Notably for WMS with symbology that takes more space than the data.

Fix #30251
2019-07-20 14:25:19 +02:00
Nyall Dawson
590d1aae9d [FEATURE][API] Visitor API for style entities
Adds a new visitor pattern API for creation of visitors which visit
all the style entities (symbols, color ramps, text formats, and
label styles) associated with different objects. Can be used on a
renderer, map layer, or project wide level.

E.g. on a project wide level, allows collection of ALL the style
symbols/color ramps/text settings inside a project, including those
in layouts or annotations!
2019-07-06 12:36:54 +10:00
nirvn
efeb8b5e32 [raster] Allow raster providers to hint whether resampling is beneficial
For some providers, such as tiled WMTS/XYZ/AMS, resampling is not
always visually beneficial and can lead to larger downloads
2019-06-25 14:42:36 +07:00
Alessandro Pasotti
79219dae23 Forward port of histogram binding fix with a bonus test
Fwd port of PR #30033
Fixes #29700

With a new test for the bug.
2019-06-09 10:25:50 +02:00
Nyall Dawson
8b16e05998 Cleaner handling of raster provider native resolutions 2019-06-06 17:11:06 +10:00
Nyall Dawson
c82d3b643f Upgrade QgsCoordinateTransformContext for proj 6
This reworks (on proj 6 builds only!) QgsCoordinateTransformContext
to use proj strings of proj coordinate operations to handle the
users' preferred list of operations when transforming coordinates
between two CRSes.

Previously, the context heavily utilised internal transform ID
numbers, which were QGIS specific and relied on matching entries
from the QGIS srs.db file. This approach was undesirable because
it meant QGIS had to maintain and carry it's own table of
possible transform pathways between CRS pairs (which was difficult
to update, impossible to track, and most likely severely out of
date).

Now we can utilse Proj 6's (wonderful!) logic for determining the
best coordinate operation to utilise between two CRSes. All the
old API has been deprecated and no longer works under proj 6, but
that's unavoidable (and unlikely to be in use by plugins anyway,
it's VERY low level stuff).

A further bonus of this work is that QgsCoordinateTransform no
longer relies on proj strings of the source/dest CRS to build
the transform -- the issue with that approach was that proj
strings are lossy (and not always possible to generate), so
now by default we are generating better pathways between CRS
pairs.

This resolves issues with transforms which rely on pivot datums,
such as GDA94 - GDA2020 conversions.

Sponsored by ICSM
2019-05-31 10:38:08 +10:00
Nyall Dawson
60deffbfa8 Add method to QgsRasterBlockFeedback to collect error messages
And append raster errors to rendering errors whenever encountered
2019-05-22 03:46:00 +10:00
Alessandro Pasotti
56a6df4d71 Fix doxy deprecated 2019-04-17 10:06:41 +10:00