16 #ifndef QGSDISTANCEAREA_H 17 #define QGSDISTANCEAREA_H 19 #include "qgis_core.h" 21 #include <QReadWriteLock> 62 bool willUseEllipsoid()
const;
94 bool setEllipsoid(
const QString &ellipsoid );
103 bool setEllipsoid(
double semiMajor,
double semiMinor );
149 double measureArea(
const QgsGeometry &geometry )
const;
161 double measureLength(
const QgsGeometry &geometry )
const;
173 double measurePerimeter(
const QgsGeometry &geometry )
const;
181 double measureLine(
const QVector<QgsPointXY> &points )
const;
206 double measureLineProjected(
const QgsPointXY &p1,
double distance = 1,
double azimuth = M_PI_2,
QgsPointXY *projectedPoint
SIP_OUT =
nullptr )
const;
225 double measurePolygon(
const QVector<QgsPointXY> &points )
const;
256 static QString formatArea(
double area,
int decimals,
QgsUnitTypes::AreaUnit unit,
bool keepBaseUnit =
false );
299 QgsPointXY computeSpheroidProject(
const QgsPointXY &p1,
double distance = 1,
double azimuth = M_PI_2 )
const;
320 QVector<QVector<QgsPointXY> > geodesicLine(
const QgsPointXY &p1,
const QgsPointXY &p2,
double interval,
bool breakLine =
false )
const;
378 double *course1 =
nullptr,
double *course2 =
nullptr )
const;
384 double computePolygonArea(
const QVector<QgsPointXY> &points )
const;
386 double computePolygonFlatArea(
const QVector<QgsPointXY> &points )
const;
392 void computeAreaInit();
410 double mSemiMajor, mSemiMinor, mInvFlattening;
414 double getQ(
double x )
const;
415 double getQbar(
double x )
const;
418 double measureLine(
const QgsCurve *curve )
const;
419 double measurePolygon(
const QgsCurve *curve )
const;
423 double m_QA, m_QB, m_QC;
424 double m_QbarA, m_QbarB, m_QbarC, m_QbarD;
double ellipsoidSemiMajor() const
Returns the ellipsoid's semi major axis.
A class to represent a 2D point.
double ellipsoidSemiMinor() const
Returns ellipsoid's semi minor axis.
double ellipsoidInverseFlattening() const
Returns ellipsoid's inverse flattening.
A geometry is the spatial representation of a feature.
const QgsCoordinateReferenceSystem & crs
Contains parameters for an ellipsoid.
QgsCoordinateReferenceSystem ellipsoidCrs() const
Returns the ellipsoid (destination) spatial reference system.
Abstract base class for curved geometry type.
Abstract base class for all geometries.
Contains information about the context in which a coordinate transform is executed.
DistanceUnit
Units of distance.
QgsCoordinateReferenceSystem sourceCrs() const
Returns the source spatial reference system.
A general purpose distance and area calculator, capable of performing ellipsoid based calculations...
QString ellipsoid() const
Returns ellipsoid's acronym.
This class represents a coordinate reference system (CRS).