2007-03-02 09:56:44 +00:00
|
|
|
|
|
|
|
class QgsDistanceArea
|
|
|
|
{
|
|
|
|
%TypeHeaderCode
|
|
|
|
#include <qgsdistancearea.h>
|
|
|
|
%End
|
|
|
|
|
|
|
|
public:
|
|
|
|
//! Constructor
|
|
|
|
QgsDistanceArea();
|
2012-09-03 23:49:46 +02:00
|
|
|
|
2007-03-02 09:56:44 +00:00
|
|
|
//! Destructor
|
|
|
|
~QgsDistanceArea();
|
2012-09-01 23:55:32 +02:00
|
|
|
|
2012-09-03 23:49:46 +02:00
|
|
|
//! Copy constructor
|
|
|
|
QgsDistanceArea( const QgsDistanceArea &origDA );
|
2012-09-01 23:55:32 +02:00
|
|
|
|
2007-03-02 09:56:44 +00:00
|
|
|
//! sets whether coordinates must be projected to ellipsoid before measuring
|
2012-09-03 23:49:46 +02:00
|
|
|
void setEllipsoidalMode( bool flag );
|
2012-09-24 02:28:15 +02:00
|
|
|
void setProjectionsEnabled( bool flag ) /Deprecated/;
|
2007-03-02 09:56:44 +00:00
|
|
|
|
|
|
|
//! returns projections enabled flag
|
2012-09-03 23:49:46 +02:00
|
|
|
bool ellipsoidalEnabled() const;
|
2012-08-20 17:16:44 +02:00
|
|
|
bool hasCrsTransformEnabled() /Deprecated/;
|
2012-09-03 23:49:46 +02:00
|
|
|
|
2008-08-21 21:11:56 +00:00
|
|
|
//! sets source spatial reference system (by QGIS CRS)
|
2012-09-03 23:49:46 +02:00
|
|
|
void setSourceCrs( long srsid );
|
|
|
|
|
2008-10-16 06:31:25 +00:00
|
|
|
//! sets source spatial reference system (by EpsgCrsId)
|
2011-02-22 23:32:33 +00:00
|
|
|
// @deprecated use setSourceAuthid()
|
2012-09-03 23:49:46 +02:00
|
|
|
void setSourceEpsgCrsId( long epsgId ) /Deprecated/;
|
2011-02-22 23:32:33 +00:00
|
|
|
|
|
|
|
//! sets source spatial reference system by authid
|
|
|
|
void setSourceAuthId( QString authid );
|
2008-07-07 11:44:41 +00:00
|
|
|
|
2007-03-02 09:56:44 +00:00
|
|
|
//! returns source spatial reference system
|
2008-10-20 20:41:06 +00:00
|
|
|
long sourceCrs();
|
2007-03-02 09:56:44 +00:00
|
|
|
//! What sort of coordinate system is being used?
|
|
|
|
bool geographic();
|
|
|
|
|
|
|
|
//! sets ellipsoid by its acronym
|
2012-09-03 23:49:46 +02:00
|
|
|
bool setEllipsoid( const QString& ellipsoid );
|
|
|
|
|
2012-09-03 15:47:48 +02:00
|
|
|
//! Sets ellipsoid by supplied radii
|
|
|
|
// Inverse flattening is calculated with invf = a/(a-b)
|
|
|
|
bool setEllipsoid( double semiMajor, double semiMinor );
|
|
|
|
|
2007-03-02 09:56:44 +00:00
|
|
|
//! returns ellipsoid's acronym
|
|
|
|
const QString& ellipsoid();
|
2012-09-03 23:49:46 +02:00
|
|
|
|
2007-03-02 09:56:44 +00:00
|
|
|
//! returns ellipsoid's semi major axis
|
|
|
|
double ellipsoidSemiMajor();
|
|
|
|
//! returns ellipsoid's semi minor axis
|
|
|
|
double ellipsoidSemiMinor();
|
|
|
|
//! returns ellipsoid's inverse flattening
|
2008-10-20 20:41:06 +00:00
|
|
|
double ellipsoidInverseFlattening();
|
2012-09-03 23:49:46 +02:00
|
|
|
|
2007-03-02 09:56:44 +00:00
|
|
|
//! general measurement (line distance or polygon area)
|
2012-09-03 23:49:46 +02:00
|
|
|
double measure( QgsGeometry* geometry );
|
|
|
|
|
|
|
|
//! measures perimeter of polygon
|
|
|
|
double measurePerimeter( QgsGeometry* geometry );
|
|
|
|
|
|
|
|
//! measures line
|
|
|
|
double measureLine( const QList<QgsPoint>& points );
|
|
|
|
|
2007-03-02 09:56:44 +00:00
|
|
|
//! measures line with one segment
|
2012-09-03 23:49:46 +02:00
|
|
|
double measureLine( const QgsPoint& p1, const QgsPoint& p2 );
|
|
|
|
|
2007-03-02 09:56:44 +00:00
|
|
|
//! measures polygon area
|
2012-09-03 23:49:46 +02:00
|
|
|
double measurePolygon( const QList<QgsPoint>& points );
|
|
|
|
|
2007-03-02 09:56:44 +00:00
|
|
|
//! compute bearing - in radians
|
2012-09-03 23:49:46 +02:00
|
|
|
double bearing( const QgsPoint& p1, const QgsPoint& p2 );
|
2007-03-02 09:56:44 +00:00
|
|
|
|
2010-09-04 13:08:17 +00:00
|
|
|
static QString textUnit( double value, int decimals, QGis::UnitType u, bool isArea, bool keepBaseUnit = false );
|
2007-03-02 09:56:44 +00:00
|
|
|
|
2012-08-20 22:51:32 +02:00
|
|
|
//! Helper for conversion between physical units
|
2012-08-21 22:30:57 +02:00
|
|
|
void convertMeasurement( double &measure, QGis::UnitType &measureUnits, QGis::UnitType displayUnits, bool isArea );
|
2012-08-20 22:51:32 +02:00
|
|
|
|
2007-03-02 09:56:44 +00:00
|
|
|
};
|