16#ifndef QGSDISTANCEAREA_H
17#define QGSDISTANCEAREA_H
24#include <QReadWriteLock>
100 bool setEllipsoid(
const QString &ellipsoid );
109 bool setEllipsoid(
double semiMajor,
double semiMinor );
213 double measureLineProjected(
const QgsPointXY &p1,
double distance = 1,
double azimuth = M_PI_2,
QgsPointXY *projectedPoint
SIP_OUT =
nullptr )
const;
251 static QString formatDistance(
double distance,
int decimals,
Qgis::DistanceUnit unit,
bool keepBaseUnit =
false );
263 static QString formatArea(
double area,
int decimals,
Qgis::AreaUnit unit,
bool keepBaseUnit =
false );
285 double convertAreaMeasurement(
double area,
Qgis::AreaUnit toUnits )
const;
297 QgsPointXY computeSpheroidProject(
const QgsPointXY &p1,
double distance = 1,
double azimuth = M_PI_2 )
const;
318 QVector<QVector<QgsPointXY> > geodesicLine(
const QgsPointXY &p1,
const QgsPointXY &p2,
double interval,
bool breakLine =
false )
const;
365 double computePolygonArea(
const QVector<QgsPointXY> &points )
const;
367 double computePolygonFlatArea(
const QVector<QgsPointXY> &points )
const;
373 void computeAreaInit()
const;
385 QgsCoordinateTransform mCoordTransform;
391 double mSemiMajor, mSemiMinor, mInvFlattening;
393 mutable std::unique_ptr< geod_geodesic > mGeod;
397 double measure(
const QgsAbstractGeometry *geomV2, MeasureType type = Default )
const;
398 double measureLine(
const QgsCurve *curve )
const;
399 double measurePolygon(
const QgsCurve *curve )
const;
DistanceUnit
Units of distance.
Abstract base class for all geometries.
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.
Abstract base class for curved geometry type.
QgsCoordinateReferenceSystem ellipsoidCrs() const
Returns the ellipsoid (destination) spatial reference system.
QgsDistanceArea & operator=(const QgsDistanceArea &other)
QgsCoordinateReferenceSystem sourceCrs() const
Returns the source spatial reference system.
double ellipsoidInverseFlattening() const
Returns ellipsoid's inverse flattening.
QString ellipsoid() const
Returns ellipsoid's acronym.
double ellipsoidSemiMajor() const
Returns the ellipsoid's semi major axis.
void setSourceCrs(const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context)
Sets source spatial reference system crs.
bool willUseEllipsoid() const
Returns whether calculations will use the ellipsoid.
double ellipsoidSemiMinor() const
Returns ellipsoid's semi minor axis.
A geometry is the spatial representation of a feature.
#define SIP_THROW(name,...)
Contains parameters for an ellipsoid.