17#ifndef QGSCOORDINATETRANSFORM_H
18#define QGSCOORDINATETRANSFORM_H
20#include <QExplicitlySharedDataPointer>
28class QgsCoordinateTransformPrivate;
135 int sourceDatumTransformId,
168 bool isValid()
const;
325 void transformInPlace( QVector<float> &x, QVector<float> &y, QVector<float> &z,
341 void transformInPlace( QVector<double> &x, QVector<double> &y, QVector<double> &z,
379 bool isShortCircuited()
const;
397 QString coordinateOperation()
const;
427 void setCoordinateOperation(
const QString &operation )
const;
443 void setAllowFallbackTransforms(
bool allowed );
456 bool allowFallbackTransforms()
const;
489 void setBallparkTransformsAreAppropriate(
bool appropriate );
505 void disableFallbackOperationHandler(
bool disabled );
515 bool fallbackOperationOccurred()
const;
530 Q_DECL_DEPRECATED
int sourceDatumTransformId()
const SIP_DEPRECATED;
545 Q_DECL_DEPRECATED
void setSourceDatumTransformId(
int datumId )
SIP_DEPRECATED;
560 Q_DECL_DEPRECATED
int destinationDatumTransformId()
const SIP_DEPRECATED;
575 Q_DECL_DEPRECATED
void setDestinationDatumTransformId(
int datumId )
SIP_DEPRECATED;
588 static void invalidateCache(
bool disableCache =
false );
597 static void invalidateCache(
bool disableCache
SIP_PYARGREMOVE =
false );
609 double scaleFactor(
const QgsRectangle &referenceExtent )
const;
612 SIP_PYOBJECT __repr__();
614 QString
str = QStringLiteral(
"<QgsCoordinateTransform: %1 to %2>" ).arg( sipCpp->sourceCrs().isValid() ? sipCpp->sourceCrs().authid() : QStringLiteral(
"NULL" ),
615 sipCpp->destinationCrs().isValid() ? sipCpp->destinationCrs().authid() : QStringLiteral(
"NULL" ) );
616 sipRes = PyUnicode_FromString(
str.toUtf8().constData() );
673 const QString &error )> &handler );
700 const QString &desiredOperation )> &handler );
719 static void removeFromCacheObjectsBelongingToCurrentThread(
void *pj_context );
722 mutable QExplicitlySharedDataPointer<QgsCoordinateTransformPrivate> d;
728 bool mHasContext =
false;
731 mutable QString mLastError;
732 bool mIgnoreImpossible =
false;
733 bool mBallparkTransformsAreAppropriate =
false;
734 bool mDisableFallbackHandler =
false;
735 mutable bool mFallbackOperationOccurred =
false;
739 const QString &coordinateOperationProj,
bool allowFallback );
744 static QReadWriteLock sCacheLock;
754 static bool sDisableCache;
759 const QString &desiredOperation )> sFallbackOperationOccurredHandler;
761 friend class TestQgsCoordinateTransform;
769 QString mySummary( QStringLiteral(
"\n%%%%%%%%%%%%%%%%%%%%%%%%\nCoordinate Transform def begins:" ) );
770 mySummary += QLatin1String(
"\n\tInitialized? : " );
786 mySummary +=
"\n\tShort Circuit? : ";
796 mySummary +=
"\n\tSource Spatial Ref Sys : ";
803 mySummary +=
"Undefined";
806 mySummary +=
"\n\tDest Spatial Ref Sys : ";
809 mySummary << r.destCRS();
813 mySummary +=
"Undefined";
817 mySummary += QLatin1String(
"\nCoordinate Transform def ends \n%%%%%%%%%%%%%%%%%%%%%%%%\n" );
818 return os << mySummary.toLocal8Bit().data() << std::endl;
QFlags< CoordinateTransformationFlag > CoordinateTransformationFlags
Coordinate transformation flags.
TransformDirection
Indicates the direction (forward or inverse) of a transform.
@ Forward
Forward transform (from source to destination)
This class represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
Custom exception class for Coordinate Reference System related exceptions.
A class to represent a 2D point.
Used to create and store a proj context object, correctly freeing the context upon destruction.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
A rectangle specified with double values.
Class for storage of 3D vectors similar to QVector3D, with the difference that it uses double precisi...
#define SIP_THROW(name,...)
const QgsCoordinateReferenceSystem & crs