QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
classification
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 "
qgsclassificationmethodregistry.h
"
17
18
#include <QIcon>
19
20
// classification methods
21
#include "
qgsclassificationcustom.h
"
22
#include "
qgsclassificationequalinterval.h
"
23
#include "
qgsclassificationquantile.h
"
24
#include "
qgsclassificationjenks.h
"
25
#include "
qgsclassificationstandarddeviation.h
"
26
#include "
qgsclassificationprettybreaks.h
"
27
#include "
qgsclassificationlogarithmic.h
"
28
#include "
qgsclassificationfixedinterval.h
"
29
30
QgsClassificationMethodRegistry::QgsClassificationMethodRegistry
()
31
{
32
addMethod
(
new
QgsClassificationEqualInterval
() );
33
addMethod
(
new
QgsClassificationQuantile
() );
34
addMethod
(
new
QgsClassificationJenks
() );
35
addMethod
(
new
QgsClassificationStandardDeviation
() );
36
addMethod
(
new
QgsClassificationPrettyBreaks
() );
37
addMethod
(
new
QgsClassificationLogarithmic
() );
38
addMethod
(
new
QgsClassificationFixedInterval
() );
39
}
40
41
QgsClassificationMethodRegistry::~QgsClassificationMethodRegistry
()
42
{
43
qDeleteAll( mMethods );
44
}
45
46
bool
QgsClassificationMethodRegistry::addMethod
(
QgsClassificationMethod
*
method
)
47
{
48
if
( mMethods.contains(
method
->id() ) )
49
return
false
;
50
51
mMethods.insert(
method
->id(),
method
);
52
return
true
;
53
}
54
55
std::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
63
QMap<QString, QString>
QgsClassificationMethodRegistry::methodNames
()
const
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
71
QIcon
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
}
QgsClassificationEqualInterval
A classification method which uses equal width intervals.
Definition
qgsclassificationequalinterval.h:28
QgsClassificationFixedInterval
Implementation of a fixed interval classification.
Definition
qgsclassificationfixedinterval.h:29
QgsClassificationJenks
A classification method for natural breaks, based on Jenks method.
Definition
qgsclassificationjenks.h:28
QgsClassificationLogarithmic
Implementation of a logarithmic scale method for classification.
Definition
qgsclassificationlogarithmic.h:29
QgsClassificationMethodRegistry::~QgsClassificationMethodRegistry
~QgsClassificationMethodRegistry()
Definition
qgsclassificationmethodregistry.cpp:41
QgsClassificationMethodRegistry::QgsClassificationMethodRegistry
QgsClassificationMethodRegistry()
Definition
qgsclassificationmethodregistry.cpp:30
QgsClassificationMethodRegistry::method
std::unique_ptr< QgsClassificationMethod > method(const QString &id)
Returns a new instance of the method for the given id.
Definition
qgsclassificationmethodregistry.cpp:55
QgsClassificationMethodRegistry::addMethod
bool addMethod(QgsClassificationMethod *method)
Adds a method to the registry Returns false if a method with same id already exists.
Definition
qgsclassificationmethodregistry.cpp:46
QgsClassificationMethodRegistry::icon
QIcon icon(const QString &id) const
Returns the icon for a given method id.
Definition
qgsclassificationmethodregistry.cpp:71
QgsClassificationMethodRegistry::methodNames
QMap< QString, QString > methodNames() const
Returns a map <name, id> of all registered methods.
Definition
qgsclassificationmethodregistry.cpp:63
QgsClassificationMethod
An abstract class for implementations of classification methods.
Definition
qgsclassificationmethod.h:95
QgsClassificationPrettyBreaks
A classification method which applies pretty breaks to data.
Definition
qgsclassificationprettybreaks.h:28
QgsClassificationQuantile
A classification method which creates classes based on quantiles.
Definition
qgsclassificationquantile.h:28
QgsClassificationStandardDeviation
A classification method which classifies based on standard deviation of values.
Definition
qgsclassificationstandarddeviation.h:28
qgsclassificationcustom.h
qgsclassificationequalinterval.h
qgsclassificationfixedinterval.h
qgsclassificationjenks.h
qgsclassificationlogarithmic.h
qgsclassificationmethodregistry.h
qgsclassificationprettybreaks.h
qgsclassificationquantile.h
qgsclassificationstandarddeviation.h
Generated on
for QGIS API Documentation by
1.17.0