QGIS API Documentation
3.8.0-Zanzibar (11aff65)
|
This class provides qgis with the ability to render raster datasets onto the mapcanvas. More...
#include <qgsrasterlayer.h>
Classes | |
struct | LayerOptions |
Setting options for loading raster layers. More... | |
Public Types | |
enum | ColorShadingAlgorithm { UndefinedShader, PseudoColorShader, FreakOutShader, ColorRampShader, UserDefinedShader } |
This enumerator describes the types of shading that can be used. More... | |
enum | LayerType { GrayOrUndefined, Palette, Multiband, ColorLayer } |
This enumerator describes the type of raster layer. More... | |
Public Types inherited from QgsMapLayer | |
enum | LayerFlag { Identifiable = 1 << 0, Removable = 1 << 1, Searchable = 1 << 2 } |
Flags for the map layer. More... | |
enum | PropertyType { Style = 0, Metadata } |
Maplayer has a style and a metadata property. More... | |
enum | StyleCategory { LayerConfiguration = 1 << 0, Symbology = 1 << 1, Symbology3D = 1 << 2, Labeling = 1 << 3, Fields = 1 << 4, Forms = 1 << 5, Actions = 1 << 6, MapTips = 1 << 7, Diagrams = 1 << 8, AttributeTable = 1 << 9, Rendering = 1 << 10, CustomProperties = 1 << 11, GeometryOptions = 1 << 12, AllStyleCategories } |
Categories of style to distinguish appropriate sections for import/export. More... | |
Public Slots | |
virtual void | setTransformContext (const QgsCoordinateTransformContext &transformContext) override |
Sets the coordinate transform context to transformContext. More... | |
void | showStatusMessage (const QString &message) |
Public Slots inherited from QgsMapLayer | |
void | emitStyleChanged () |
Triggers an emission of the styleChanged() signal. More... | |
virtual bool | setDependencies (const QSet< QgsMapLayerDependency > &layers) |
Sets the list of dependencies. More... | |
void | setMaximumScale (double scale) |
Sets the maximum map scale (i.e. More... | |
void | setMinimumScale (double scale) |
Sets the minimum map scale (i.e. More... | |
void | setRefreshOnNofifyMessage (const QString &message) |
Set the notification message that triggers repaint If refresh on notification is enabled, the notification will triggerRepaint only if the notification message is equal to. More... | |
void | setRefreshOnNotifyEnabled (bool enabled) |
Set whether provider notification is connected to triggerRepaint. More... | |
void | setScaleBasedVisibility (bool enabled) |
Sets whether scale based visibility is enabled for the layer. More... | |
virtual void | setTransformContext (const QgsCoordinateTransformContext &transformContext)=0 |
Sets the coordinate transform context to transformContext. More... | |
void | triggerRepaint (bool deferredUpdate=false) |
Will advise the map canvas (and any other interested party) that this layer requires to be repainted. More... | |
Public Member Functions | |
QgsRasterLayer () | |
Constructor. Provider is not set. More... | |
QgsRasterLayer (const QString &uri, const QString &baseName=QString(), const QString &providerType="gdal", const QgsRasterLayer::LayerOptions &options=QgsRasterLayer::LayerOptions()) | |
This is the constructor for the RasterLayer class. More... | |
~QgsRasterLayer () override | |
int | bandCount () const |
Returns the number of bands in this layer. More... | |
QString | bandName (int bandNoInt) const |
Returns the name of a band given its number. More... | |
QgsBrightnessContrastFilter * | brightnessFilter () const |
QgsRasterLayer * | clone () const override |
Returns a new instance equivalent to this one. More... | |
QgsMapLayerRenderer * | createMapRenderer (QgsRenderContext &rendererContext) override |
Returns new instance of QgsMapLayerRenderer that will be used for rendering of given context. More... | |
QgsRasterDataProvider * | dataProvider () override |
Returns the layer's data provider, it may be nullptr . More... | |
const QgsRasterDataProvider * | dataProvider () const override |
Returns the layer's data provider in a const-correct manner, it may be nullptr . More... | |
bool | defaultContrastEnhancementSettings (QgsContrastEnhancement::ContrastEnhancementAlgorithm &myAlgorithm, QgsRasterMinMaxOrigin::Limits &myLimits) const |
Returns default contrast enhancement settings for that type of raster. More... | |
void | draw (QPainter *theQPainter, QgsRasterViewPort *myRasterViewPort, const QgsMapToPixel *qgsMapToPixel=nullptr) |
This is an overloaded version of the draw() function that is called by both draw() and thumbnailAsPixmap. More... | |
int | height () const |
Returns the height of the (unclipped) raster. More... | |
QString | htmlMetadata () const override |
Obtain a formatted HTML string containing assorted metadata for this layer. More... | |
QgsHueSaturationFilter * | hueSaturationFilter () const |
bool | isSpatial () const override |
Returns true if the layer is considered a spatial layer, ie it has some form of geometry associated with it. More... | |
QgsLegendColorList | legendSymbologyItems () const |
Returns a list with classification items (Text and color) More... | |
QPixmap | paletteAsPixmap (int bandNumber=1) |
Returns a 100x100 pixmap of the color palette. More... | |
QgsRasterPipe * | pipe () |
Returns the raster pipe. More... | |
QImage | previewAsImage (QSize size, const QColor &bgColor=Qt::white, QImage::Format format=QImage::Format_ARGB32_Premultiplied) |
Draws a preview of the rasterlayer into a QImage. More... | |
QString | providerType () const |
[ data provider interface ] Which provider is being used for this Raster Layer? More... | |
LayerType | rasterType () |
Returns the raster layer type (which is a read only property). More... | |
double | rasterUnitsPerPixelX () const |
Returns the number of raster units per each raster pixel in X axis. More... | |
double | rasterUnitsPerPixelY () const |
Returns the number of raster units per each raster pixel in Y axis. More... | |
void | refreshContrastEnhancement (const QgsRectangle &extent) |
Refresh contrast enhancement with new extent. More... | |
void | refreshRendererIfNeeded (QgsRasterRenderer *rasterRenderer, const QgsRectangle &extent) |
Refresh renderer with new extent, if needed. More... | |
void | reload () override |
Synchronises with changes in the datasource. More... | |
QgsRasterRenderer * | renderer () const |
QgsRasterResampleFilter * | resampleFilter () const |
Sets raster resample filter. Takes ownership of the resample filter object. More... | |
void | setContrastEnhancement (QgsContrastEnhancement::ContrastEnhancementAlgorithm algorithm, QgsRasterMinMaxOrigin::Limits limits=QgsRasterMinMaxOrigin::MinMax, const QgsRectangle &extent=QgsRectangle(), int sampleSize=QgsRasterLayer::SAMPLE_SIZE, bool generateLookupTableFlag=true) |
Set contrast enhancement algorithm. More... | |
Q_DECL_DEPRECATED void | setDataProvider (const QString &provider) |
Set the data provider. More... | |
void | setDataProvider (const QString &provider, const QgsDataProvider::ProviderOptions &options) |
Set the data provider. More... | |
void | setDataSource (const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, bool loadDefaultStyleFlag=false) override |
Updates the data source of the layer. More... | |
void | setDefaultContrastEnhancement () |
Sets the default contrast enhancement. More... | |
void | setLayerOrder (const QStringList &layers) override |
Reorders the previously selected sublayers of this layer from bottom to top. More... | |
void | setRenderer (QgsRasterRenderer *renderer) |
Sets raster renderer. Takes ownership of the renderer object. More... | |
void | setSubLayerVisibility (const QString &name, bool vis) override |
Set the visibility of the given sublayer name. More... | |
QStringList | subLayers () const override |
Returns the sublayers of this layer. More... | |
QDateTime | timestamp () const override |
Time stamp of data source in the moment when data/metadata were loaded by provider. More... | |
int | width () const |
Returns the width of the (unclipped) raster. More... | |
bool | writeSld (QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsStringMap &props=QgsStringMap()) const |
Writes the symbology of the layer into the document provided in SLD 1.0.0 format. More... | |
Public Member Functions inherited from QgsMapLayer | |
QgsMapLayer (QgsMapLayerType type=QgsMapLayerType::VectorLayer, const QString &name=QString(), const QString &source=QString()) | |
Constructor for QgsMapLayer. More... | |
QgsMapLayer (QgsMapLayer const &)=delete | |
QgsMapLayer cannot be copied. More... | |
~QgsMapLayer () override | |
QString | abstract () const |
Returns the abstract of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | attribution () const |
Returns the attribution of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | attributionUrl () const |
Returns the attribution URL of the layer used by QGIS Server in GetCapabilities request. More... | |
int | autoRefreshInterval () const |
Returns the auto refresh interval (in milliseconds). More... | |
QPainter::CompositionMode | blendMode () const |
Returns the current blending mode for a layer. More... | |
QgsCoordinateReferenceSystem | crs () const |
Returns the layer's spatial reference system. More... | |
QVariant | customProperty (const QString &value, const QVariant &defaultValue=QVariant()) const |
Read a custom property from layer. More... | |
QStringList | customPropertyKeys () const |
Returns list of all keys within custom properties. More... | |
QString | dataUrl () const |
Returns the DataUrl of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | dataUrlFormat () const |
Returns the DataUrl format of the layer used by QGIS Server in GetCapabilities request. More... | |
virtual QSet< QgsMapLayerDependency > | dependencies () const |
Gets the list of dependencies. More... | |
virtual QgsError | error () const |
Gets current status error. More... | |
void | exportNamedMetadata (QDomDocument &doc, QString &errorMsg) const |
Export the current metadata of this layer as named metadata in a QDomDocument. More... | |
virtual void | exportNamedStyle (QDomDocument &doc, QString &errorMsg, const QgsReadWriteContext &context=QgsReadWriteContext(), QgsMapLayer::StyleCategories categories=QgsMapLayer::AllStyleCategories) const |
Export the properties of this layer as named style in a QDomDocument. More... | |
virtual void | exportSldStyle (QDomDocument &doc, QString &errorMsg) const |
Export the properties of this layer as SLD style in a QDomDocument. More... | |
virtual QgsRectangle | extent () const |
Returns the extent of the layer. More... | |
QgsMapLayer::LayerFlags | flags () const |
Returns the flags for this layer. More... | |
bool | hasAutoRefreshEnabled () const |
Returns true if auto refresh is enabled for the layer. More... | |
bool | hasScaleBasedVisibility () const |
Returns whether scale based visibility is enabled for the layer. More... | |
QString | id () const |
Returns the layer's unique ID, which is used to access this layer from QgsProject. More... | |
bool | importNamedMetadata (QDomDocument &document, QString &errorMessage) |
Import the metadata of this layer from a QDomDocument. More... | |
virtual bool | importNamedStyle (QDomDocument &doc, QString &errorMsg, QgsMapLayer::StyleCategories categories=QgsMapLayer::AllStyleCategories) |
Import the properties of this layer from a QDomDocument. More... | |
virtual bool | isEditable () const |
Returns true if the layer can be edited. More... | |
bool | isInScaleRange (double scale) const |
Tests whether the layer should be visible at the specified scale. More... | |
bool | isRefreshOnNotifyEnabled () const |
Returns true if the refresh on provider nofification is enabled. More... | |
bool | isValid () const |
Returns the status of the layer. More... | |
QString | keywordList () const |
Returns the keyword list of the layer used by QGIS Server in GetCapabilities request. More... | |
QgsMapLayerLegend * | legend () const |
Can be nullptr . More... | |
QString | legendUrl () const |
Returns the URL for the layer's legend. More... | |
QString | legendUrlFormat () const |
Returns the format for a URL based layer legend. More... | |
QString | loadDefaultMetadata (bool &resultFlag) |
Retrieve the default metadata for this layer if one exists (either as a .qmd file on disk or as a record in the users metadata table in their personal qgis.db) More... | |
virtual QString | loadDefaultStyle (bool &resultFlag) |
Retrieve the default style for this layer if one exists (either as a .qml file on disk or as a record in the users style table in their personal qgis.db) More... | |
virtual QString | loadNamedMetadata (const QString &uri, bool &resultFlag) |
Retrieve a named metadata for this layer if one exists (either as a .qmd file on disk or as a record in the users style table in their personal qgis.db) More... | |
bool | loadNamedMetadataFromDatabase (const QString &db, const QString &uri, QString &qmd) |
Retrieve a named metadata for this layer from a sqlite database. More... | |
virtual QString | loadNamedStyle (const QString &uri, bool &resultFlag, QgsMapLayer::StyleCategories categories=QgsMapLayer::AllStyleCategories) |
Retrieve a named style for this layer if one exists (either as a .qml file on disk or as a record in the users style table in their personal qgis.db) More... | |
virtual bool | loadNamedStyleFromDatabase (const QString &db, const QString &uri, QString &qml) |
Retrieve a named style for this layer from a sqlite database. More... | |
virtual QString | loadSldStyle (const QString &uri, bool &resultFlag) |
Attempts to style the layer using the formatting from an SLD type file. More... | |
double | maximumScale () const |
Returns the maximum map scale (i.e. More... | |
virtual const QgsLayerMetadata & | metadata () const |
Returns a reference to the layer's metadata store. More... | |
virtual QString | metadataUri () const |
Retrieve the metadata URI for this layer (either as a .qmd file on disk or as a record in the users style table in their personal qgis.db) More... | |
QString | metadataUrl () const |
Returns the metadata URL of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | metadataUrlFormat () const |
Returns the metadata format of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | metadataUrlType () const |
Returns the metadata type of the layer used by QGIS Server in GetCapabilities request. More... | |
double | minimumScale () const |
Returns the minimum map scale (i.e. More... | |
QString | name () const |
Returns the display name of the layer. More... | |
QgsMapLayer & | operator= (QgsMapLayer const &)=delete |
QgsMapLayer cannot be copied. More... | |
QString | originalXmlProperties () const |
Returns the XML properties of the original layer as they were when the layer was first read from the project file. More... | |
QString | providerType () const |
Returns the provider type (provider key) for this layer. More... | |
QString | publicSource () const |
Gets a version of the internal layer definition that has sensitive bits removed (for example, the password). More... | |
bool | readLayerXml (const QDomElement &layerElement, QgsReadWriteContext &context) |
Sets state from DOM document. More... | |
bool | readOnly () const |
Returns if this layer is read only. More... | |
virtual bool | readSld (const QDomNode &node, QString &errorMessage) |
virtual bool | readStyle (const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, StyleCategories categories=AllStyleCategories) |
Read the style for the current layer from the DOM node supplied. More... | |
virtual bool | readSymbology (const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, StyleCategories categories=AllStyleCategories)=0 |
Read the symbology for the current layer from the DOM node supplied. More... | |
QString | refreshOnNotifyMessage () const |
Returns the message that should be notified by the provider to triggerRepaint. More... | |
void | removeCustomProperty (const QString &key) |
Remove a custom property from layer. More... | |
QgsAbstract3DRenderer * | renderer3D () const |
Returns 3D renderer associated with the layer. More... | |
virtual void | resolveReferences (QgsProject *project) |
Resolve references to other layers (kept as layer IDs after reading XML) into layer objects. More... | |
virtual QString | saveDefaultMetadata (bool &resultFlag) |
Save the current metadata of this layer as the default metadata (either as a .qmd file on disk or as a record in the users style table in their personal qgis.db) More... | |
virtual QString | saveDefaultStyle (bool &resultFlag) |
Save the properties of this layer as the default style (either as a .qml file on disk or as a record in the users style table in their personal qgis.db) More... | |
QString | saveNamedMetadata (const QString &uri, bool &resultFlag) |
Save the current metadata of this layer as a named metadata (either as a .qmd file on disk or as a record in the users style table in their personal qgis.db) More... | |
virtual QString | saveNamedStyle (const QString &uri, bool &resultFlag, StyleCategories categories=AllStyleCategories) |
Save the properties of this layer as a named style (either as a .qml file on disk or as a record in the users style table in their personal qgis.db) More... | |
virtual QString | saveSldStyle (const QString &uri, bool &resultFlag) const |
Saves the properties of this layer to an SLD format file. More... | |
void | setAbstract (const QString &abstract) |
Sets the abstract of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setAttribution (const QString &attrib) |
Sets the attribution of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setAttributionUrl (const QString &attribUrl) |
Sets the attribution URL of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setAutoRefreshEnabled (bool enabled) |
Sets whether auto refresh is enabled for the layer. More... | |
void | setAutoRefreshInterval (int interval) |
Sets the auto refresh interval (in milliseconds) for the layer. More... | |
void | setBlendMode (QPainter::CompositionMode blendMode) |
Set the blending mode used for rendering a layer. More... | |
void | setCrs (const QgsCoordinateReferenceSystem &srs, bool emitSignal=true) |
Sets layer's spatial reference system. More... | |
void | setCustomProperties (const QgsObjectCustomProperties &properties) |
Set custom properties for layer. More... | |
void | setCustomProperty (const QString &key, const QVariant &value) |
Set a custom property for layer. More... | |
void | setDataUrl (const QString &dataUrl) |
Sets the DataUrl of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setDataUrlFormat (const QString &dataUrlFormat) |
Sets the DataUrl format of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setFlags (QgsMapLayer::LayerFlags flags) |
Returns the flags for this layer. More... | |
void | setKeywordList (const QString &keywords) |
Sets the keyword list of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setLegend (QgsMapLayerLegend *legend) |
Assign a legend controller to the map layer. More... | |
void | setLegendUrl (const QString &legendUrl) |
Sets the URL for the layer's legend. More... | |
void | setLegendUrlFormat (const QString &legendUrlFormat) |
Sets the format for a URL based layer legend. More... | |
virtual void | setMetadata (const QgsLayerMetadata &metadata) |
Sets the layer's metadata store. More... | |
void | setMetadataUrl (const QString &metaUrl) |
Sets the metadata URL of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setMetadataUrlFormat (const QString &metaUrlFormat) |
Sets the metadata format of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setMetadataUrlType (const QString &metaUrlType) |
Set the metadata type of the layer used by QGIS Server in GetCapabilities request MetadataUrlType indicates the standard to which the metadata complies. More... | |
void | setName (const QString &name) |
Set the display name of the layer. More... | |
void | setOriginalXmlProperties (const QString &originalXmlProperties) |
Sets the original XML properties for the layer to originalXmlProperties. More... | |
void | setRenderer3D (QgsAbstract3DRenderer *renderer) |
Sets 3D renderer for the layer. More... | |
void | setShortName (const QString &shortName) |
Sets the short name of the layer used by QGIS Server to identify the layer. More... | |
void | setTitle (const QString &title) |
Sets the title of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | shortName () const |
Returns the short name of the layer used by QGIS Server to identify the layer. More... | |
QString | source () const |
Returns the source for the layer. More... | |
QgsMapLayerStyleManager * | styleManager () const |
Gets access to the layer's style manager. More... | |
virtual QString | styleURI () const |
Retrieve the style URI for this layer (either as a .qml file on disk or as a record in the users style table in their personal qgis.db) More... | |
QString | title () const |
Returns the title of the layer used by QGIS Server in GetCapabilities request. More... | |
QgsCoordinateTransformContext | transformContext () const |
Returns the layer data provider coordinate transform context or a default transform context if the layer does not have a valid data provider. More... | |
QgsMapLayerType | type () const |
Returns the type of the layer. More... | |
QUndoStack * | undoStack () |
Returns pointer to layer's undo stack. More... | |
QUndoStack * | undoStackStyles () |
Returns pointer to layer's style undo stack. More... | |
bool | writeLayerXml (QDomElement &layerElement, QDomDocument &document, const QgsReadWriteContext &context) const |
Stores state in DOM node. More... | |
virtual bool | writeStyle (QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &context, StyleCategories categories=AllStyleCategories) const |
Write just the symbology information for the layer into the document. More... | |
virtual bool | writeSymbology (QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &context, StyleCategories categories=AllStyleCategories) const =0 |
Write the style for the layer into the docment provided. More... | |
Static Public Member Functions | |
static bool | isValidRasterFileName (const QString &fileNameQString, QString &retError) |
This helper checks to see whether the file name appears to be a valid raster file name. More... | |
static bool | isValidRasterFileName (const QString &fileNameQString) |
static QDateTime | lastModified (const QString &name) |
Returns time stamp for given file name. More... | |
Static Public Member Functions inherited from QgsMapLayer | |
static QString | extensionPropertyType (PropertyType type) |
Returns the extension of a Property. More... | |
static QString | formatLayerName (const QString &name) |
A convenience function to capitalize and format a layer name. More... | |
static QString | generateId (const QString &layerName) |
Generates an unique identifier for this layer, the generate ID is prefixed by layerName. More... | |
Protected Member Functions | |
QString | decodedSource (const QString &source, const QString &provider, const QgsReadWriteContext &context) const override |
Called by readLayerXML(), used by derived classes to decode provider's specific data source from project files. More... | |
QString | encodedSource (const QString &source, const QgsReadWriteContext &context) const override |
Called by writeLayerXML(), used by derived classes to encode provider's specific data source to project files. More... | |
bool | readStyle (const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories=QgsMapLayer::AllStyleCategories) override |
bool | readSymbology (const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories=QgsMapLayer::AllStyleCategories) override |
bool | readXml (const QDomNode &layer_node, QgsReadWriteContext &context) override |
Called by readLayerXML(), used by children to read state specific to them from project files. More... | |
bool | writeStyle (QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories=QgsMapLayer::AllStyleCategories) const override |
bool | writeSymbology (QDomNode &, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories=QgsMapLayer::AllStyleCategories) const override |
bool | writeXml (QDomNode &layer_node, QDomDocument &doc, const QgsReadWriteContext &context) const override |
Called by writeLayerXML(), used by children to write state specific to them to project files. More... | |
Protected Member Functions inherited from QgsMapLayer | |
void | appendError (const QgsErrorMessage &error) |
Add error message. More... | |
void | clone (QgsMapLayer *layer) const |
Copies attributes like name, short name, ... More... | |
bool | hasDependencyCycle (const QSet< QgsMapLayerDependency > &layers) const |
Checks whether a new set of dependencies will introduce a cycle. More... | |
void | readCommonStyle (const QDomElement &layerElement, const QgsReadWriteContext &context, StyleCategories categories=AllStyleCategories) |
Read style data common to all layer types. More... | |
void | readCustomProperties (const QDomNode &layerNode, const QString &keyStartsWith=QString()) |
Read custom properties from project file. More... | |
void | readStyleManager (const QDomNode &layerNode) |
Read style manager's configuration (if any). To be called by subclasses. More... | |
void | setError (const QgsError &error) |
Sets error message. More... | |
virtual void | setExtent (const QgsRectangle &rect) |
Sets the extent. More... | |
void | setProviderType (const QString &providerType) |
Sets the providerType (provider key) More... | |
void | setValid (bool valid) |
Sets whether layer is valid or not - should be used in constructor. More... | |
void | writeCommonStyle (QDomElement &layerElement, QDomDocument &document, const QgsReadWriteContext &context, StyleCategories categories=AllStyleCategories) const |
Write style data common to all layer types. More... | |
void | writeCustomProperties (QDomNode &layerNode, QDomDocument &doc) const |
Write custom properties to project file. More... | |
void | writeStyleManager (QDomNode &layerNode, QDomDocument &doc) const |
Write style manager's configuration (if exists). To be called by subclasses. More... | |
Additional Inherited Members | |
Signals inherited from QgsMapLayer | |
void | autoRefreshIntervalChanged (int interval) |
Emitted when the auto refresh interval changes. More... | |
void | blendModeChanged (QPainter::CompositionMode blendMode) |
Signal emitted when the blend mode is changed, through QgsMapLayer::setBlendMode() More... | |
void | configChanged () |
Emitted whenever the configuration is changed. More... | |
void | crsChanged () |
Emit a signal that layer's CRS has been reset. More... | |
void | dataChanged () |
Data of layer changed. More... | |
void | dataSourceChanged () |
Emitted whenever the layer's data source has been changed. More... | |
void | dependenciesChanged () |
Emitted when dependencies are changed. More... | |
void | flagsChanged () |
Emitted when layer's flags have been modified. More... | |
void | legendChanged () |
Signal emitted when legend of the layer has changed. More... | |
void | metadataChanged () |
Emitted when the layer's metadata is changed. More... | |
void | nameChanged () |
Emitted when the name has been changed. More... | |
void | recalculateExtents () const |
This is used to send a request that any mapcanvas using this layer update its extents. More... | |
void | renderer3DChanged () |
Signal emitted when 3D renderer associated with the layer has changed. More... | |
void | rendererChanged () |
Signal emitted when renderer is changed. More... | |
void | repaintRequested (bool deferredUpdate=false) |
By emitting this signal the layer tells that either appearance or content have been changed and any view showing the rendered layer should refresh itself. More... | |
void | statusChanged (const QString &status) |
Emit a signal with status (e.g. to be caught by QgisApp and display a msg on status bar) More... | |
void | styleChanged () |
Signal emitted whenever a change affects the layer's style. More... | |
void | willBeDeleted () |
Emitted in the destructor when the layer is about to be deleted, but it is still in a perfectly valid state: the last chance for other pieces of code for some cleanup if they use the layer. More... | |
Protected Attributes inherited from QgsMapLayer | |
QString | mAbstract |
Description of the layer. More... | |
QString | mAttribution |
Attribution of the layer. More... | |
QString | mAttributionUrl |
QString | mDataSource |
Data source description string, varies by layer type. More... | |
QString | mDataUrl |
DataUrl of the layer. More... | |
QString | mDataUrlFormat |
QSet< QgsMapLayerDependency > | mDependencies |
List of layers that may modify this layer on modification. More... | |
QgsError | mError |
Error. More... | |
QgsRectangle | mExtent |
Extent of the layer. More... | |
bool | mIsRefreshOnNofifyEnabled = false |
QString | mKeywordList |
QString | mLayerName |
Name of the layer - used for display. More... | |
QString | mLegendUrl |
WMS legend. More... | |
QString | mLegendUrlFormat |
QString | mMetadataUrl |
MetadataUrl of the layer. More... | |
QString | mMetadataUrlFormat |
QString | mMetadataUrlType |
QString | mProviderKey |
Data provider key (name of the data provider) More... | |
QString | mRefreshOnNofifyMessage |
QString | mShortName |
QString | mTitle |
bool | mValid = false |
Indicates if the layer is valid and can be drawn. More... | |
Properties inherited from QgsMapLayer | |
int | autoRefreshInterval |
QgsCoordinateReferenceSystem | crs |
QgsLayerMetadata | metadata |
QString | name |
This class provides qgis with the ability to render raster datasets onto the mapcanvas.
The qgsrasterlayer class makes use of gdal for data io, and thus supports any gdal supported format. The constructor attempts to infer what type of file (LayerType) is being opened - not in terms of the file format (tif, ascii grid etc.) but rather in terms of whether the image is a GRAYSCALE, PaletteD or Multiband,
Within the three allowable raster layer types, there are 8 permutations of how a layer can actually be rendered. These are defined in the DrawingStyle enum and consist of:
SingleBandGray -> a GRAYSCALE layer drawn as a range of gray colors (0-255) SingleBandPseudoColor -> a GRAYSCALE layer drawn using a pseudocolor algorithm PalettedSingleBandGray -> a PaletteD layer drawn in gray scale (using only one of the color components) PalettedSingleBandPseudoColor -> a PaletteD layer having only one of its color components rendered as pseudo color PalettedMultiBandColor -> a PaletteD image where the bands contains 24bit color info and 8 bits is pulled out per color MultiBandSingleBandGray -> a layer containing 2 or more bands, but using only one band to produce a grayscale image MultiBandSingleBandPseudoColor -> a layer containing 2 or more bands, but using only one band to produce a pseudocolor image MultiBandColor -> a layer containing 2 or more bands, mapped to the three RGBcolors. In the case of a multiband with only two bands, one band will have to be mapped to more than one color
Each of the above mentioned drawing styles is implemented in its own draw* function. Some of the drawing styles listed above require statistics about the layer such as the min / max / mean / stddev etc. statistics for a band can be gathered using the bandStatistics function. Note that statistics gathering is a slow process and every effort should be made to call this function as few times as possible. For this reason, qgsraster has a vector class member to store stats for each band. The constructor initializes this vector on startup, but only populates the band name and number fields.
Note that where bands are of gdal 'undefined' type, their values may exceed the renderable range of 0-255. Because of this a linear scaling histogram enhanceContrast is applied to undefined layers to normalise the data into the 0-255 range.
A qgsrasterlayer band can be referred to either by name or by number (base=1). It should be noted that band names as stored in datafiles may not be unique, and so the rasterlayer class appends the band number in brackets behind each band name.
Sample usage of the QgsRasterLayer class:
In order to automate redrawing of a raster layer, you should link it to a map canvas like this :
Once a layer has been created you can find out what type of layer it is (GrayOrUndefined, Palette or Multiband):
Raster layers can also have an arbitrary level of transparency defined, and have their color palettes inverted using the setTransparency and setInvertHistogram methods.
Pseudocolor images can have their output adjusted to a given number of standard deviations using the setStandardDeviations method.
The final area of functionality you may be interested in is band mapping. Band mapping allows you to choose arbitrary band -> color mappings and is applicable only to Palette and Multiband rasters, There are four mappings that can be made: red, green, blue and gray. Mappings are non-exclusive. That is a given band can be assigned to no, some or all color mappings. The constructor sets sensible defaults for band mappings but these can be overridden at run time using the setRedBandName, setGreenBandName, setBlueBandName and setGrayBandName methods.
Definition at line 138 of file qgsrasterlayer.h.
This enumerator describes the types of shading that can be used.
Enumerator | |
---|---|
UndefinedShader | |
PseudoColorShader | |
FreakOutShader | |
ColorRampShader | |
UserDefinedShader |
Definition at line 225 of file qgsrasterlayer.h.
This enumerator describes the type of raster layer.
Enumerator | |
---|---|
GrayOrUndefined | |
Palette | |
Multiband | |
ColorLayer |
Definition at line 235 of file qgsrasterlayer.h.
QgsRasterLayer::QgsRasterLayer | ( | ) |
Constructor. Provider is not set.
Definition at line 102 of file qgsrasterlayer.cpp.
|
explicit |
This is the constructor for the RasterLayer class.
The main tasks carried out by the constructor are:
-Load the rasters default style (.qml) file if it exists
-Populate the RasterStatsVector with initial values for each band.
-Calculate the layer extents
-Determine whether the layer is gray, paletted or multiband.
-Assign sensible defaults for the red, green, blue and gray bands.
Definition at line 112 of file qgsrasterlayer.cpp.
|
override |
Definition at line 130 of file qgsrasterlayer.cpp.
int QgsRasterLayer::bandCount | ( | ) | const |
Returns the number of bands in this layer.
Definition at line 215 of file qgsrasterlayer.cpp.
QString QgsRasterLayer::bandName | ( | int | bandNoInt | ) | const |
Returns the name of a band given its number.
Definition at line 221 of file qgsrasterlayer.cpp.
|
inline |
Definition at line 297 of file qgsrasterlayer.h.
|
overridevirtual |
Returns a new instance equivalent to this one.
A new provider is created for the same data source and renderer is cloned too.
Implements QgsMapLayer.
Definition at line 138 of file qgsrasterlayer.cpp.
|
overridevirtual |
Returns new instance of QgsMapLayerRenderer that will be used for rendering of given context.
Implements QgsMapLayer.
Definition at line 249 of file qgsrasterlayer.cpp.
|
overridevirtual |
Returns the layer's data provider, it may be nullptr
.
Reimplemented from QgsMapLayer.
Definition at line 231 of file qgsrasterlayer.cpp.
|
overridevirtual |
Returns the layer's data provider in a const-correct manner, it may be nullptr
.
Reimplemented from QgsMapLayer.
Definition at line 236 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Called by readLayerXML(), used by derived classes to decode provider's specific data source from project files.
Typically resolving absolute or relative paths, usernames and passwords or drivers prefixes ("HDF5:")
source | data source to decode, typically read from layer's DOM element "datasource" |
dataProvider | string identification of data provider (e.g. "ogr"), typically read from layer's DOM element |
context | reading context (e.g. for conversion between relative and absolute paths) |
Reimplemented from QgsMapLayer.
Definition at line 2060 of file qgsrasterlayer.cpp.
bool QgsRasterLayer::defaultContrastEnhancementSettings | ( | QgsContrastEnhancement::ContrastEnhancementAlgorithm & | myAlgorithm, |
QgsRasterMinMaxOrigin::Limits & | myLimits | ||
) | const |
Returns default contrast enhancement settings for that type of raster.
Definition at line 1193 of file qgsrasterlayer.cpp.
void QgsRasterLayer::draw | ( | QPainter * | theQPainter, |
QgsRasterViewPort * | myRasterViewPort, | ||
const QgsMapToPixel * | qgsMapToPixel = nullptr |
||
) |
This is an overloaded version of the draw() function that is called by both draw() and thumbnailAsPixmap.
Definition at line 255 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Called by writeLayerXML(), used by derived classes to encode provider's specific data source to project files.
Typically resolving absolute or relative paths, usernames and passwords or drivers prefixes ("HDF5:")
source | data source to encode, typically QgsMapLayer::source() |
context | writing context (e.g. for conversion between relative and absolute paths) |
Reimplemented from QgsMapLayer.
Definition at line 1964 of file qgsrasterlayer.cpp.
int QgsRasterLayer::height | ( | ) | const |
Returns the height of the (unclipped) raster.
Definition at line 2240 of file qgsrasterlayer.cpp.
|
overridevirtual |
Obtain a formatted HTML string containing assorted metadata for this layer.
Reimplemented from QgsMapLayer.
Definition at line 297 of file qgsrasterlayer.cpp.
|
inline |
Definition at line 298 of file qgsrasterlayer.h.
|
inlineoverridevirtual |
Returns true
if the layer is considered a spatial layer, ie it has some form of geometry associated with it.
Reimplemented from QgsMapLayer.
Definition at line 344 of file qgsrasterlayer.h.
|
static |
This helper checks to see whether the file name appears to be a valid raster file name.
If the file name looks like it could be valid, but some sort of error occurs in processing the file, the error is returned in retError.
Definition at line 164 of file qgsrasterlayer.cpp.
|
static |
Definition at line 177 of file qgsrasterlayer.cpp.
|
static |
Returns time stamp for given file name.
Definition at line 183 of file qgsrasterlayer.cpp.
QgsLegendColorList QgsRasterLayer::legendSymbologyItems | ( | ) | const |
Returns a list with classification items (Text and color)
Definition at line 286 of file qgsrasterlayer.cpp.
QPixmap QgsRasterLayer::paletteAsPixmap | ( | int | bandNumber = 1 | ) |
Returns a 100x100 pixmap of the color palette.
If the layer has no palette a white pixmap will be returned
bandNumber | the number of the band to use for generating a pixmap of the associated palette |
Definition at line 491 of file qgsrasterlayer.cpp.
|
inline |
Returns the raster pipe.
Definition at line 303 of file qgsrasterlayer.h.
QImage QgsRasterLayer::previewAsImage | ( | QSize | size, |
const QColor & | bgColor = Qt::white , |
||
QImage::Format | format = QImage::Format_ARGB32_Premultiplied |
||
) |
Draws a preview of the rasterlayer into a QImage.
Definition at line 1531 of file qgsrasterlayer.cpp.
QString QgsRasterLayer::providerType | ( | ) | const |
[ data provider interface ] Which provider is being used for this Raster Layer?
Definition at line 545 of file qgsrasterlayer.cpp.
|
inline |
Returns the raster layer type (which is a read only property).
Definition at line 288 of file qgsrasterlayer.h.
double QgsRasterLayer::rasterUnitsPerPixelX | ( | ) | const |
Returns the number of raster units per each raster pixel in X axis.
In a world file, this is normally the first row (without the sign). (E.g. the value reported by the GDAL geotransform[1]).
Definition at line 550 of file qgsrasterlayer.cpp.
double QgsRasterLayer::rasterUnitsPerPixelY | ( | ) | const |
Returns the number of raster units per each raster pixel in Y axis.
In a world file, this is normally the first row (without the sign).
Definition at line 565 of file qgsrasterlayer.cpp.
|
overrideprotected |
Definition at line 1688 of file qgsrasterlayer.cpp.
|
overrideprotected |
Definition at line 1593 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Called by readLayerXML(), used by children to read state specific to them from project files.
Reimplemented from QgsMapLayer.
Definition at line 1693 of file qgsrasterlayer.cpp.
void QgsRasterLayer::refreshContrastEnhancement | ( | const QgsRectangle & | extent | ) |
Refresh contrast enhancement with new extent.
Definition at line 1055 of file qgsrasterlayer.cpp.
void QgsRasterLayer::refreshRendererIfNeeded | ( | QgsRasterRenderer * | rasterRenderer, |
const QgsRectangle & | extent | ||
) |
Refresh renderer with new extent, if needed.
Definition at line 1096 of file qgsrasterlayer.cpp.
|
overridevirtual |
Synchronises with changes in the datasource.
Reimplemented from QgsMapLayer.
Definition at line 241 of file qgsrasterlayer.cpp.
|
inline |
Definition at line 292 of file qgsrasterlayer.h.
|
inline |
Sets raster resample filter. Takes ownership of the resample filter object.
Definition at line 295 of file qgsrasterlayer.h.
void QgsRasterLayer::setContrastEnhancement | ( | QgsContrastEnhancement::ContrastEnhancementAlgorithm | algorithm, |
QgsRasterMinMaxOrigin::Limits | limits = QgsRasterMinMaxOrigin::MinMax , |
||
const QgsRectangle & | extent = QgsRectangle() , |
||
int | sampleSize = QgsRasterLayer::SAMPLE_SIZE , |
||
bool | generateLookupTableFlag = true |
||
) |
Set contrast enhancement algorithm.
algorithm | Contrast enhancement algorithm |
limits | Limits |
extent | Extent used to calculate limits, if empty, use full layer extent |
sampleSize | Size of data sample to calculate limits, if 0, use full resolution |
generateLookupTableFlag | Generate lookup table. |
Definition at line 914 of file qgsrasterlayer.cpp.
void QgsRasterLayer::setDataProvider | ( | const QString & | provider | ) |
Set the data provider.
Definition at line 201 of file qgsrasterlayer.cpp.
void QgsRasterLayer::setDataProvider | ( | const QString & | provider, |
const QgsDataProvider::ProviderOptions & | options | ||
) |
Set the data provider.
provider | provider key string, must match a valid QgsRasterDataProvider key. E.g. "gdal", "wms", etc. |
options | provider options |
Definition at line 587 of file qgsrasterlayer.cpp.
|
overridevirtual |
Updates the data source of the layer.
The layer's renderer and legend will be preserved only if the geometry type of the new data source matches the current geometry type of the layer.
dataSource | new layer data source |
baseName | base name of the layer |
provider | provider string |
options | provider options |
loadDefaultStyleFlag | set to true to reset the layer's style to the default for the data source |
Reimplemented from QgsMapLayer.
Definition at line 798 of file qgsrasterlayer.cpp.
void QgsRasterLayer::setDefaultContrastEnhancement | ( | ) |
Sets the default contrast enhancement.
Definition at line 1253 of file qgsrasterlayer.cpp.
|
overridevirtual |
Reorders the previously selected sublayers of this layer from bottom to top.
(Useful for providers that manage their own layers, such as WMS).
Reimplemented from QgsMapLayer.
Definition at line 1264 of file qgsrasterlayer.cpp.
void QgsRasterLayer::setRenderer | ( | QgsRasterRenderer * | renderer | ) |
Sets raster renderer. Takes ownership of the renderer object.
Definition at line 1496 of file qgsrasterlayer.cpp.
|
overridevirtual |
Set the visibility of the given sublayer name.
name | sublayer name |
visible | sublayer visibility |
Reimplemented from QgsMapLayer.
Definition at line 1276 of file qgsrasterlayer.cpp.
|
overridevirtualslot |
Sets the coordinate transform context to transformContext.
Definition at line 1518 of file qgsrasterlayer.cpp.
|
slot |
Definition at line 1509 of file qgsrasterlayer.cpp.
|
overridevirtual |
Returns the sublayers of this layer.
(Useful for providers that manage their own layers, such as WMS).
Reimplemented from QgsMapLayer.
Definition at line 1524 of file qgsrasterlayer.cpp.
|
overridevirtual |
Time stamp of data source in the moment when data/metadata were loaded by provider.
Reimplemented from QgsMapLayer.
Definition at line 1287 of file qgsrasterlayer.cpp.
int QgsRasterLayer::width | ( | ) | const |
Returns the width of the (unclipped) raster.
Definition at line 2234 of file qgsrasterlayer.cpp.
bool QgsRasterLayer::writeSld | ( | QDomNode & | node, |
QDomDocument & | doc, | ||
QString & | errorMessage, | ||
const QgsStringMap & | props = QgsStringMap() |
||
) | const |
Writes the symbology of the layer into the document provided in SLD 1.0.0 format.
node | the node that will have the style element added to it. |
doc | the document that will have the QDomNode added. |
errorMessage | reference to string that will be updated with any error messages |
props | a open ended set of properties that can drive/inform the SLD encoding |
true
in case of success Definition at line 1293 of file qgsrasterlayer.cpp.
|
overrideprotected |
Definition at line 1871 of file qgsrasterlayer.cpp.
|
overrideprotected |
Definition at line 1840 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Called by writeLayerXML(), used by children to write state specific to them to project files.
Reimplemented from QgsMapLayer.
Definition at line 1881 of file qgsrasterlayer.cpp.
|
static |
Default enhancement algorithm for multiple band raster of type different from Byte.
Definition at line 153 of file qgsrasterlayer.h.
|
static |
Default enhancement limits for multiple band raster of type different from Byte.
Definition at line 162 of file qgsrasterlayer.h.
|
static |
Default enhancement algorithm for multiple band raster of type Byte.
Definition at line 150 of file qgsrasterlayer.h.
|
static |
Default enhancement limits for multiple band raster of type Byte.
Definition at line 159 of file qgsrasterlayer.h.
|
static |
Default sample size (number of pixels) for estimated statistics/histogram calculation.
Definition at line 144 of file qgsrasterlayer.h.
|
static |
Default enhancement algorithm for single band raster.
Definition at line 147 of file qgsrasterlayer.h.
|
static |
Default enhancement limits for single band raster.
Definition at line 156 of file qgsrasterlayer.h.