QGIS API Documentation 3.43.0-Master (b60ef06885e)
qgsclassificationmethodregistry.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsclassificationmethodregistry.h
3 ---------------------
4 begin : September 2019
5 copyright : (C) 2019 by Denis Rouzaud
6 email : denis@opengis.ch
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#include <QIcon>
17
19
20// classification methods
29
40
45
47{
48 if ( mMethods.contains( method->id() ) )
49 return false;
50
51 mMethods.insert( method->id(), method );
52 return true;
53}
54
55std::unique_ptr< QgsClassificationMethod > QgsClassificationMethodRegistry::method( const QString &id )
56{
57 auto it = mMethods.constFind( id );
58 if ( it == mMethods.constEnd() )
59 return std::make_unique< QgsClassificationCustom >();
60 return it.value()->clone();
61}
62
64{
65 QMap<QString, QString> methods;
66 for ( const QgsClassificationMethod *method : std::as_const( mMethods ) )
67 methods.insert( method->name(), method->id() );
68 return methods;
69}
70
71QIcon QgsClassificationMethodRegistry::icon( const QString &id ) const
72{
73 QgsClassificationMethod *method = mMethods.value( id, nullptr );
74 if ( method )
75 return method->icon();
76 else
77 return QIcon();
78}
79
A classification method which uses equal width intervals.
Implementation of a fixed interval classification.
A classification method for natural breaks, based on Jenks method.
Implementation of a logarithmic scale method for classification.
std::unique_ptr< QgsClassificationMethod > method(const QString &id)
Returns a new instance of the method for the given id.
bool addMethod(QgsClassificationMethod *method)
Adds a method to the registry Returns false if a method with same id already exists.
QIcon icon(const QString &id) const
Returns the icon for a given method id.
QMap< QString, QString > methodNames() const
Returns a map <name, id> of all registered methods.
An abstract class for implementations of classification methods.
A classification method which applies pretty breaks to data.
A classification method which creates classes based on quantiles.
A classification method which classifies based on standard deviation of values.