mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-10 00:13:55 -04:00
from a raster layer Adds an easy way to style discrete rasters such as landuse classes using the Paletted renderer. Just select the Paletted renderer, pick a band, then hit the "Add Unique Values" button. The unique pixel values will be fetched from the layer and a color assigned to each using the currently selected color ramp. Fix #14845 Sponsored by - Stéphane Henriod - Satelligence (http://satelligence.com/) - Bird's Eye View (https://www.birdseyeviewgis.com/) - + other anonymous backers
50 lines
2.0 KiB
Plaintext
50 lines
2.0 KiB
Plaintext
class QgsPalettedRasterRenderer : QgsRasterRenderer
|
|
{
|
|
%TypeHeaderCode
|
|
#include "qgspalettedrasterrenderer.h"
|
|
%End
|
|
public:
|
|
|
|
struct Class
|
|
{
|
|
|
|
Class( int value, const QColor &color = QColor(), const QString &label = QString() );
|
|
int value;
|
|
QColor color;
|
|
QString label;
|
|
};
|
|
|
|
typedef QList< QgsPalettedRasterRenderer::Class > ClassData;
|
|
|
|
QgsPalettedRasterRenderer( QgsRasterInterface *input, int bandNumber, const ClassData &classes );
|
|
~QgsPalettedRasterRenderer();
|
|
virtual QgsPalettedRasterRenderer * clone() const /Factory/;
|
|
static QgsRasterRenderer* create( const QDomElement& elem, QgsRasterInterface* input ) /Factory/;
|
|
|
|
QgsRasterBlock *block( int bandNo, const QgsRectangle & extent, int width, int height, QgsRasterBlockFeedback* feedback = nullptr ) /Factory/;
|
|
|
|
/** Returns number of colors*/
|
|
int nColors() const;
|
|
ClassData classes() const;
|
|
QString label( int idx ) const;
|
|
void setLabel( int idx, const QString &label );
|
|
|
|
void writeXml( QDomDocument &doc, QDomElement &parentElem ) const;
|
|
|
|
void legendSymbologyItems( QList< QPair< QString, QColor > > &symbolItems /Out/ ) const;
|
|
|
|
QList<int> usesBands() const;
|
|
void setSourceColorRamp( QgsColorRamp *ramp /Transfer/ );
|
|
QgsColorRamp *sourceColorRamp() const;
|
|
static QgsPalettedRasterRenderer::ClassData colorTableToClassData( const QList<QgsColorRampShader::ColorRampItem> &table );
|
|
static QgsPalettedRasterRenderer::ClassData classDataFromString( const QString &string );
|
|
static QgsPalettedRasterRenderer::ClassData classDataFromFile( const QString &path );
|
|
static QString classDataToString( const QgsPalettedRasterRenderer::ClassData &classes );
|
|
static QgsPalettedRasterRenderer::ClassData classDataFromRaster( QgsRasterInterface *raster, int bandNumber, QgsColorRamp *ramp = 0 );
|
|
|
|
private:
|
|
|
|
QgsPalettedRasterRenderer( const QgsPalettedRasterRenderer& );
|
|
const QgsPalettedRasterRenderer& operator=( const QgsPalettedRasterRenderer& );
|
|
};
|