16#ifndef QGSDISTANCEAREA_H
17#define QGSDISTANCEAREA_H
24#include <QReadWriteLock>
101 bool setEllipsoid(
const QString &ellipsoid );
110 bool setEllipsoid(
double semiMajor,
double semiMinor );
214 double measureLineProjected(
const QgsPointXY &p1,
double distance = 1,
double azimuth = M_PI_2,
QgsPointXY *projectedPoint
SIP_OUT =
nullptr )
const;
252 static QString formatDistance(
double distance,
int decimals,
Qgis::DistanceUnit unit,
bool keepBaseUnit =
false );
264 static QString formatArea(
double area,
int decimals,
Qgis::AreaUnit unit,
bool keepBaseUnit =
false );
286 double convertAreaMeasurement(
double area,
Qgis::AreaUnit toUnits )
const;
298 QgsPointXY computeSpheroidProject(
const QgsPointXY &p1,
double distance = 1,
double azimuth = M_PI_2 )
const;
319 QVector<QVector<QgsPointXY> > geodesicLine(
const QgsPointXY &p1,
const QgsPointXY &p2,
double interval,
bool breakLine =
false )
const;
367 double computePolygonArea(
const QVector<QgsPointXY> &points )
const;
369 double computePolygonFlatArea(
const QVector<QgsPointXY> &points )
const;
375 void computeAreaInit()
const;
387 QgsCoordinateTransform mCoordTransform;
393 double mSemiMajor, mSemiMinor, mInvFlattening;
395 mutable std::unique_ptr< geod_geodesic > mGeod;
399 double measure(
const QgsAbstractGeometry *geomV2, MeasureType type = Default )
const;
400 double measureLine(
const QgsCurve *curve )
const;
401 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.