16#ifndef QGSDISTANCEAREA_H 
   17#define QGSDISTANCEAREA_H 
   21#include <QReadWriteLock> 
   67    bool willUseEllipsoid() 
const;
 
   98    bool setEllipsoid( 
const QString &ellipsoid );
 
  107    bool setEllipsoid( 
double semiMajor, 
double semiMinor );
 
  211    double measureLineProjected( 
const QgsPointXY &p1, 
double distance = 1, 
double azimuth = M_PI_2, 
QgsPointXY *projectedPoint 
SIP_OUT = 
nullptr ) 
const;
 
  249    static QString formatDistance( 
double distance, 
int decimals, 
Qgis::DistanceUnit unit, 
bool keepBaseUnit = 
false );
 
  261    static QString formatArea( 
double area, 
int decimals, 
Qgis::AreaUnit unit, 
bool keepBaseUnit = 
false );
 
  283    double convertAreaMeasurement( 
double area, 
Qgis::AreaUnit toUnits ) 
const;
 
  295    QgsPointXY computeSpheroidProject( 
const QgsPointXY &p1, 
double distance = 1, 
double azimuth = M_PI_2 ) 
const;
 
  316    QVector<QVector<QgsPointXY> > geodesicLine( 
const QgsPointXY &p1, 
const QgsPointXY &p2, 
double interval, 
bool breakLine = 
false ) 
const;
 
  364    double computePolygonArea( 
const QVector<QgsPointXY> &points ) 
const;
 
  366    double computePolygonFlatArea( 
const QVector<QgsPointXY> &points ) 
const;
 
  372    void computeAreaInit() 
const;
 
  390    double mSemiMajor, mSemiMinor, mInvFlattening;
 
  392    mutable std::unique_ptr< geod_geodesic > mGeod;
 
  397    double measureLine( 
const QgsCurve *curve ) 
const;
 
  398    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.
 
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
 
QgsCoordinateReferenceSystem ellipsoidCrs() const
Returns the ellipsoid (destination) spatial reference system.
 
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.
 
double ellipsoidSemiMinor() const
Returns ellipsoid's semi minor axis.
 
A geometry is the spatial representation of a feature.
 
#define SIP_THROW(name,...)
 
const QgsCoordinateReferenceSystem & crs
 
Contains parameters for an ellipsoid.