QGIS API Documentation  3.2.0-Bonn (bc43194)
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  private:
94 
95  // ellipsoid cache
96  static QReadWriteLock sEllipsoidCacheLock;
97  static QHash< QString, EllipsoidParameters > sEllipsoidCache;
98  static QReadWriteLock sDefinitionCacheLock;
99  static QList< QgsEllipsoidUtils::EllipsoidDefinition > sDefinitionCache;
100 
101 };
102 
103 #endif // QGSELLIPSOIDUTILS_H
104 
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.