16 #ifndef QGSDISTANCEAREA_H 
   17 #define QGSDISTANCEAREA_H 
   19 #include "qgis_core.h" 
   21 #include <QReadWriteLock> 
   70     bool willUseEllipsoid() 
const;
 
  102     bool setEllipsoid( 
const QString &ellipsoid );
 
  111     bool setEllipsoid( 
double semiMajor, 
double semiMinor );
 
  157     double measureArea( 
const QgsGeometry &geometry ) 
const;
 
  169     double measureLength( 
const QgsGeometry &geometry ) 
const;
 
  181     double measurePerimeter( 
const QgsGeometry &geometry ) 
const;
 
  189     double measureLine( 
const QVector<QgsPointXY> &points ) 
const;
 
  214     double measureLineProjected( 
const QgsPointXY &p1, 
double distance = 1, 
double azimuth = M_PI_2, 
QgsPointXY *projectedPoint 
SIP_OUT = 
nullptr ) 
const;
 
  233     double measurePolygon( 
const QVector<QgsPointXY> &points ) 
const;
 
  264     static QString formatArea( 
double area, 
int decimals, 
QgsUnitTypes::AreaUnit unit, 
bool keepBaseUnit = 
false );
 
  301     QgsPointXY computeSpheroidProject( 
const QgsPointXY &p1, 
double distance = 1, 
double azimuth = M_PI_2 ) 
const;
 
  322     QVector<QVector<QgsPointXY> > geodesicLine( 
const QgsPointXY &p1, 
const QgsPointXY &p2, 
double interval, 
bool breakLine = 
false ) 
const;
 
  373     double computePolygonArea( 
const QVector<QgsPointXY> &points ) 
const;
 
  375     double computePolygonFlatArea( 
const QVector<QgsPointXY> &points ) 
const;
 
  381     void computeAreaInit() 
const;
 
  399     double mSemiMajor, mSemiMinor, mInvFlattening;
 
  401     mutable std::unique_ptr< geod_geodesic > mGeod;
 
  406     double measureLine( 
const QgsCurve *curve ) 
const;
 
  407     double measurePolygon( 
const QgsCurve *curve ) 
const;
 
Abstract base class for all geometries.
This class represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
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.
A class to represent a 2D point.
DistanceUnit
Units of distance.
const QgsCoordinateReferenceSystem & crs
Contains parameters for an ellipsoid.