QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
proj
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_sip.h
"
21
#include "
qgscoordinatereferencesystem.h
"
22
23
#include <QQuaternion>
24
#include <QStringList>
25
#include <QVector3D>
26
27
class
QgsCelestialBody
;
28
35
class
CORE_EXPORT
QgsEllipsoidUtils
36
{
37
public
:
41
struct
EllipsoidParameters
42
{
44
bool
valid
{
true
};
45
47
double
semiMajor
{ -1.0 };
49
double
semiMinor
{ -1.0 };
50
52
bool
useCustomParameters
{
false
};
53
55
double
inverseFlattening
{ -1.0 };
56
58
QgsCoordinateReferenceSystem
crs
;
59
};
60
64
struct
EllipsoidDefinition
65
{
67
QString
acronym
;
69
QString
description
;
71
QgsEllipsoidUtils::EllipsoidParameters
parameters
;
72
80
QString
celestialBodyName
;
81
};
82
87
static
EllipsoidParameters
ellipsoidParameters
(
const
QString &ellipsoid );
88
94
static
QList< QgsEllipsoidUtils::EllipsoidDefinition >
definitions
();
95
101
static
QStringList
acronyms
();
102
114
static
QList< QgsCelestialBody >
celestialBodies
();
115
122
static
QQuaternion
quaternionFromNormalUpRight
(
const
QVector3D &normalUp,
const
QVector3D &normalRight );
123
134
static
QQuaternion
ellipsoidEastNorthUpRotation
(
const
QgsVector3D
&position,
double
semiMajorAxis,
double
semiMinorAxis );
135
136
#ifndef SIP_RUN
145
static
void
invalidateCache
(
bool
disableCache =
false
);
146
#endif
147
};
148
149
#endif
// QGSELLIPSOIDUTILS_H
QgsCelestialBody
Contains information about a celestial body.
Definition
qgscelestialbody.h:35
QgsCoordinateReferenceSystem
Represents a coordinate reference system (CRS).
Definition
qgscoordinatereferencesystem.h:216
QgsEllipsoidUtils
Contains utility functions for working with ellipsoids and querying the ellipsoid database.
Definition
qgsellipsoidutils.h:36
QgsEllipsoidUtils::definitions
static QList< QgsEllipsoidUtils::EllipsoidDefinition > definitions()
Returns a list of the definitions for all known ellipsoids from the internal ellipsoid database.
Definition
qgsellipsoidutils.cpp:246
QgsEllipsoidUtils::ellipsoidEastNorthUpRotation
static QQuaternion ellipsoidEastNorthUpRotation(const QgsVector3D &position, double semiMajorAxis, double semiMinorAxis)
Returns a rotation quaternion for the east-north-up (ENU) reference frame at position on the ellipsoi...
Definition
qgsellipsoidutils.cpp:375
QgsEllipsoidUtils::celestialBodies
static QList< QgsCelestialBody > celestialBodies()
Returns a list of all known celestial bodies.
Definition
qgsellipsoidutils.cpp:341
QgsEllipsoidUtils::invalidateCache
static void invalidateCache(bool disableCache=false)
Clears the internal cache used.
Definition
qgsellipsoidutils.cpp:346
QgsEllipsoidUtils::quaternionFromNormalUpRight
static QQuaternion quaternionFromNormalUpRight(const QVector3D &normalUp, const QVector3D &normalRight)
Builds a rotation quaternion from an "up" direction and a "right" direction, with the remaining basis...
Definition
qgsellipsoidutils.cpp:360
QgsEllipsoidUtils::ellipsoidParameters
static EllipsoidParameters ellipsoidParameters(const QString &ellipsoid)
Returns the parameters for the specified ellipsoid.
Definition
qgsellipsoidutils.cpp:47
QgsEllipsoidUtils::acronyms
static QStringList acronyms()
Returns a list of all known ellipsoid acronyms from the internal ellipsoid database.
Definition
qgsellipsoidutils.cpp:329
QgsVector3D
A 3D vector (similar to QVector3D) with the difference that it uses double precision instead of singl...
Definition
qgsvector3d.h:33
qgis_sip.h
qgscoordinatereferencesystem.h
QgsEllipsoidUtils::EllipsoidDefinition
Contains definition of an ellipsoid.
Definition
qgsellipsoidutils.h:65
QgsEllipsoidUtils::EllipsoidDefinition::acronym
QString acronym
authority:code for QGIS builds with proj version 6 or greater, or custom acronym for ellipsoid for ea...
Definition
qgsellipsoidutils.h:67
QgsEllipsoidUtils::EllipsoidDefinition::celestialBodyName
QString celestialBodyName
Name of the associated celestial body (e.g.
Definition
qgsellipsoidutils.h:80
QgsEllipsoidUtils::EllipsoidDefinition::description
QString description
Description of ellipsoid.
Definition
qgsellipsoidutils.h:69
QgsEllipsoidUtils::EllipsoidDefinition::parameters
QgsEllipsoidUtils::EllipsoidParameters parameters
Ellipsoid parameters.
Definition
qgsellipsoidutils.h:71
QgsEllipsoidUtils::EllipsoidParameters
Contains parameters for an ellipsoid.
Definition
qgsellipsoidutils.h:42
QgsEllipsoidUtils::EllipsoidParameters::semiMajor
double semiMajor
Semi-major axis, in meters.
Definition
qgsellipsoidutils.h:47
QgsEllipsoidUtils::EllipsoidParameters::valid
bool valid
Whether ellipsoid parameters are valid.
Definition
qgsellipsoidutils.h:44
QgsEllipsoidUtils::EllipsoidParameters::semiMinor
double semiMinor
Semi-minor axis, in meters.
Definition
qgsellipsoidutils.h:49
QgsEllipsoidUtils::EllipsoidParameters::crs
QgsCoordinateReferenceSystem crs
Associated coordinate reference system.
Definition
qgsellipsoidutils.h:58
QgsEllipsoidUtils::EllipsoidParameters::inverseFlattening
double inverseFlattening
Inverse flattening.
Definition
qgsellipsoidutils.h:55
QgsEllipsoidUtils::EllipsoidParameters::useCustomParameters
bool useCustomParameters
Whether custom parameters alone should be used (semiMajor/semiMinor only).
Definition
qgsellipsoidutils.h:52
Generated on
for QGIS API Documentation by
1.17.0