QGIS API Documentation  3.21.0-Master (5b68dc587e)
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
29 struct PJconsts;
30 typedef struct PJconsts PJ;
31 #endif
32 
42 class 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 
132  struct GridDetails
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...