QGIS API Documentation 3.29.0-Master (006c3c0232)
qgsdatumtransform.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsdatumtransform.h
3 ------------------------
4 begin : Dec 2017
5 copyright : (C) 2017 Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17#ifndef QGSDATUMTRANSFORM_H
18#define QGSDATUMTRANSFORM_H
19
20#include "qgis_core.h"
21#include "qgis_sip.h"
22#include "qgsrectangle.h"
23#include <QString>
24#include <QList>
25
27
28#ifndef SIP_RUN
29struct PJconsts;
30typedef struct PJconsts PJ;
31#endif
32
42class CORE_EXPORT QgsDatumTransform
43{
44
45 public:
46
53 {
54
59 TransformPair( int sourceTransformId = -1, int destinationTransformId = -1 )
60 : sourceTransformId( sourceTransformId )
61 , destinationTransformId( destinationTransformId )
62 {}
63
68 int sourceTransformId = -1;
69
74 int destinationTransformId = -1;
75
76 // TODO c++20 - replace with = default
78 {
79 return other.sourceTransformId == sourceTransformId && other.destinationTransformId == destinationTransformId;
80 }
81
83 {
84 return other.sourceTransformId != sourceTransformId || other.destinationTransformId != destinationTransformId;
85 }
86
87 };
88
94 {
96 int datumTransformId = -1;
97
99 int epsgCode = 0;
100
103
106
109
112
114 QString remarks;
115
117 QString scope;
118
120 bool preferred = false;
121
123 bool deprecated = false;
124
125 };
126
127
133 {
135 QString shortName;
137 QString fullName;
139 QString packageName;
141 QString url;
143 bool directDownload = false;
145 bool openLicense = false;
147 bool isAvailable = false;
148 };
149
157 {
159 QString scope;
160
162 QString remarks;
163
165 QString areaOfUse;
166
168 QString authority;
169
171 QString code;
172 };
173
181 {
183 QString proj;
185 QString name;
187 double accuracy = 0;
188
195 QString authority;
196
203 QString code;
204
211 QString scope;
212
219 QString remarks;
220
227 bool isAvailable = false;
228
237 QString areaOfUse;
238
244
248 QList< QgsDatumTransform::GridDetails > grids;
249
256 QList< QgsDatumTransform::SingleOperationDetails > operationDetails;
257 };
258
278 static QList< QgsDatumTransform::TransformDetails > operations( const QgsCoordinateReferenceSystem &source, const QgsCoordinateReferenceSystem &destination, bool includeSuperseded = false );
279
287 Q_DECL_DEPRECATED static QList< QgsDatumTransform::TransformPair > datumTransformations( const QgsCoordinateReferenceSystem &source, const QgsCoordinateReferenceSystem &destination ) SIP_DEPRECATED;
288
297 Q_DECL_DEPRECATED static QString datumTransformToProj( int datumTransformId ) SIP_DEPRECATED;
298
306 Q_DECL_DEPRECATED static int projStringToDatumTransformId( const QString &string ) SIP_DEPRECATED;
307
317 Q_DECL_DEPRECATED static QgsDatumTransform::TransformInfo datumTransformInfo( int datumTransformId ) SIP_DEPRECATED;
318
319#ifndef SIP_RUN
320
327 static QgsDatumTransform::TransformDetails transformDetailsFromPj( PJ *op );
328#endif
329
330 private:
331
332 static void searchDatumTransform( const QString &sql, QList< int > &transforms );
333
334
335};
336
337#endif // QGSDATUMTRANSFORM_H
This class represents a coordinate reference system (CRS).
Contains methods and classes relating the datum transformations.
A rectangle specified with double values.
Definition: qgsrectangle.h:42
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
struct PJconsts PJ
Contains information about a projection transformation grid file.
QString shortName
Short name of transform grid.
QString fullName
Full name of transform grid.
QString packageName
Name of package the grid is included within.
QString url
Url to download grid from.
Contains information about a single coordinate operation.
QString authority
Authority name, e.g. EPSG.
QString code
Authority code, e.g. "8447" (for EPSG:8447).
QString remarks
Remarks for operation, from EPSG registry database.
QString areaOfUse
Area of use, from EPSG registry database.
QString scope
Scope of operation, from EPSG registry database.
Contains information about a coordinate transformation operation.
QgsRectangle bounds
Valid bounds for the coordinate operation.
QString name
Display name of transform operation.
QString areaOfUse
Area of use string.
QList< QgsDatumTransform::SingleOperationDetails > operationDetails
Contains information about the single operation steps used in the transform operation.
QString proj
Proj representation of transform operation.
QList< QgsDatumTransform::GridDetails > grids
Contains a list of transform grids used by the operation.
QString scope
Scope of operation, from EPSG registry database.
QString remarks
Remarks for operation, from EPSG registry database.
QString authority
Authority name, e.g.
QString code
Identification code, e.g.
Contains datum transform information.
QString sourceCrsDescription
Source CRS description.
QString destinationCrsAuthId
Destination CRS auth ID.
QString destinationCrsDescription
Destination CRS description.
QString sourceCrsAuthId
Source CRS auth ID.
QString scope
Scope of transform.
QString remarks
Transform remarks.
Contains datum transform information.
bool operator==(QgsDatumTransform::TransformPair other) const
int sourceTransformId
ID for the datum transform to use when projecting from the source CRS.
int destinationTransformId
ID for the datum transform to use when projecting to the destination CRS.
bool operator!=(QgsDatumTransform::TransformPair other) const
TransformPair(int sourceTransformId=-1, int destinationTransformId=-1)
Constructor for a TransformPair with the specified sourceTransformId and destinationTransformId trans...