The QgsTemporalProperty interface has members which are geared more to
user-setable temporal properties (e.g. "isActive()"/"setIsActive()". Instead, use
more explicit "hasTemporalCapabilities()" API in
QgsDataProviderTemporalCapabilities to make it immediately clear
what this flag means for data provider temporal capabilities
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
It's the consumers (like layer renderer's) responsibility to crop
to a desired extent. The raster data provider should just return the
extent it was asked for.
corrupt data as a result. Instead, indicate explicitly that an
error occurred so that callers will fallback on appropriate
error paths.
Fixes rendering random junk (and possible crashes) when
attempting to open an invalid gdal raster data source,
such as the one attached to
https://github.com/OSGeo/gdal/issues/1545
Also replace manual memory management with unique_ptrs
This allows derived classes with optimised identify methods to
utilise the same optimisations for sample. Better would be for
them to implement optimised sample methods, but this is better
than using the unoptimised block approach for all providers.
We never call this method using nullptrs, so there's no need
for this to be a pointer argument in the first place. And
having it a pointer encourages leaky code, such as the
leak this commit fixes in server.
This implements a new "import geotagged photos" algorithm
for processing. It allows selection of a folder which it
will scan for jpg files which have been geotagged and
creates a PointZ layer with the result, with attributes
for photo path, altitude, direction and timestamp.
Optionally the scan can be recursive and you can create
an optional table of photos which could not be read
or which were missing geotags.
The algorithm automatically sets the output table to
use an external resource widget to display the linked
photos in the attribute form.
[ALGCHANGE]
* update HTML data provider metadata for grass, gdal and ams
* update HTML data provider metadata for WMS and WCS
* move HTML bullet list to QgsHtmlUtils
Now that our minimum VS studio version allowed supports std::round,
we should use that in place of Qt's qRound method.
Because:
- it doesn't truncate to int, resulting in unpredictable
behaviour (refs #16925)
- better to stick to standard c++ methods wherever possible,
since they're likely better supported and optimised by the
compilers
- it's a tiny reduction to the barrier for entry to QGIS
development (I'm sick of pointing out the need to use
qRound during PR reviews!)
To create a 2x2 raster block with one byte per pixel:
```
block = QgsRasterBlock(Qgis.Byte, 2, 2)
block.setData(b'\xaa\xbb\xcc\xdd')
```
To overwrite existing raster data at position 0,0 by the 2x2 block:
```
provider.setEditable(True)
provider.writeBlock(block, band, 0, 0)
provider.setEditable(False)
```
The improvement allows immediate cancellation of raster rendering
in progress. Until now, even when map rendering got cancelled
(e.g. by zooming of panning canvas), the GUI got blocked while waiting
for raster layers to finish their rendering (only vector layers have
had support for cancellation). This should allow for much smoother
user experience while browsing maps including rasters.
The cancellation is supported currently by WMS/WMTS and WCS providers.
GDAL provider may also get support thanks to improvements in GDAL 2.
Funded by Land Information New Zealand.
- rename methods with XML to Xml, CRS to Crs, WMS to Wms, ID to Id
- rename methods with SRS to Crs
- rename methods with abbreviations like "dest" to "destination"
- rename methods with abbreviations like "src" to "source"