QGIS API Documentation  3.4.15-Madeira (e83d02e274)
qgsellipsoidutils.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsellipsoidutils.h
3  --------------------
4  Date : April 2017
5  Copyright : (C) 2017 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
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 #ifndef QGSELLIPSOIDUTILS_H
17 #define QGSELLIPSOIDUTILS_H
18 
19 #include "qgis_core.h"
20 #include "qgis.h"
22 #include <QStringList>
23 
31 class CORE_EXPORT QgsEllipsoidUtils
32 {
33  public:
34 
40  {
42  bool valid{ true };
43 
45  double semiMajor{ -1.0 };
47  double semiMinor{ -1.0 };
48 
50  bool useCustomParameters{ false };
51 
53  double inverseFlattening{ -1.0 };
54 
57  };
58 
64  {
66  QString acronym;
68  QString description;
71  };
72 
77  static EllipsoidParameters ellipsoidParameters( const QString &ellipsoid );
78 
84  static QList< QgsEllipsoidUtils::EllipsoidDefinition > definitions();
85 
91  static QStringList acronyms();
92 
93 #ifndef SIP_RUN
94 
103  static void invalidateCache( bool disableCache = false );
104 #endif
105 
106  private:
107 
108  // ellipsoid cache
109  static QReadWriteLock sEllipsoidCacheLock;
110  static QHash< QString, EllipsoidParameters > sEllipsoidCache;
111  static QReadWriteLock sDefinitionCacheLock;
112  static QList< QgsEllipsoidUtils::EllipsoidDefinition > sDefinitionCache;
113 
114 };
115 
116 #endif // QGSELLIPSOIDUTILS_H
117 
Contains definition of an ellipsoid.
Contains parameters for an ellipsoid.
QgsCoordinateReferenceSystem crs
Associated coordinate reference system.
QString acronym
Acronym for ellipsoid.
Contains utility functions for working with ellipsoids and querying the ellipsoid database...
This class represents a coordinate reference system (CRS).
QgsEllipsoidUtils::EllipsoidParameters parameters
Ellipsoid parameters.
QString description
Description of ellipsoid.