QGIS API Documentation  2.3.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
QgsScaleCalculator Class Reference

Calculates scale for a given combination of canvas size, map extent, and monitor dpi. More...

#include <qgsscalecalculator.h>

Public Member Functions

 QgsScaleCalculator (double dpi=0, QGis::UnitType mapUnits=QGis::Meters)
 Constructor. More...
 
 ~QgsScaleCalculator ()
 Destructor. More...
 
void setDpi (double dpi)
 Set the dpi to be used in scale calculations. More...
 
double dpi ()
 Accessor for dpi used in scale calculations. More...
 
void setMapUnits (QGis::UnitType mapUnits)
 Set the map units. More...
 
QGis::UnitType mapUnits () const
 Returns current map units. More...
 
double calculate (const QgsRectangle &mapExtent, int canvasWidth)
 Calculate the scale denominator. More...
 
double calculateGeographicDistance (const QgsRectangle &mapExtent)
 Calculate the distance between two points in geographic coordinates. More...
 

Private Attributes

double mDpi
 dpi member More...
 
QGis::UnitType mMapUnits
 map unit member More...
 

Detailed Description

Calculates scale for a given combination of canvas size, map extent, and monitor dpi.

Definition at line 31 of file qgsscalecalculator.h.

Constructor & Destructor Documentation

QgsScaleCalculator::QgsScaleCalculator ( double  dpi = 0,
QGis::UnitType  mapUnits = QGis::Meters 
)

Constructor.

Parameters
dpiMonitor resolution in dots per inch
mapUnitsUnits of the data on the map. Must match a value from the QGis::UnitType enum (Meters, Feet, Degrees)

Definition at line 24 of file qgsscalecalculator.cpp.

QgsScaleCalculator::~QgsScaleCalculator ( )

Destructor.

Definition at line 28 of file qgsscalecalculator.cpp.

Member Function Documentation

double QgsScaleCalculator::calculate ( const QgsRectangle mapExtent,
int  canvasWidth 
)

Calculate the scale denominator.

Parameters
mapExtentQgsRectangle containing the current map extent
canvasWidthWidth of the map canvas in pixel (physical) units
Returns
scale denominator of current map view

Definition at line 52 of file qgsscalecalculator.cpp.

References calculateGeographicDistance(), QGis::Degrees, QGis::Feet, mDpi, QGis::Meters, mMapUnits, QGis::NauticalMiles, QgsDebugMsg, QgsRectangle::xMaximum(), and QgsRectangle::xMinimum().

Referenced by QgsComposerMap::scale(), QgsMapSettings::updateDerived(), and QgsMapRenderer::updateScale().

double QgsScaleCalculator::calculateGeographicDistance ( const QgsRectangle mapExtent)

Calculate the distance between two points in geographic coordinates.

Used to calculate scale for map views with geographic (decimal degree) data.

Parameters
mapExtentQgsRectangle containing the current map extent

Definition at line 93 of file qgsscalecalculator.cpp.

References QgsDebugMsg, QgsRectangle::xMaximum(), QgsRectangle::xMinimum(), QgsRectangle::yMaximum(), and QgsRectangle::yMinimum().

Referenced by calculate().

double QgsScaleCalculator::dpi ( )

Accessor for dpi used in scale calculations.

Returns
int the dpi used for scale calculations.

Definition at line 35 of file qgsscalecalculator.cpp.

References mDpi.

Referenced by QgsMapRenderer::outputDpi(), QgsMapRenderer::render(), and setDpi().

QGis::UnitType QgsScaleCalculator::mapUnits ( ) const

Returns current map units.

Definition at line 46 of file qgsscalecalculator.cpp.

References mMapUnits, and QgsDebugMsgLevel.

Referenced by QgsMapSettings::mapUnits(), QgsMapRenderer::mapUnits(), and setMapUnits().

void QgsScaleCalculator::setDpi ( double  dpi)

Set the dpi to be used in scale calculations.

Parameters
dpiDots per inch of monitor resolution

Definition at line 31 of file qgsscalecalculator.cpp.

References dpi(), and mDpi.

Referenced by QgsComposerMap::scale(), QgsMapRenderer::setOutputSize(), and QgsMapSettings::updateDerived().

void QgsScaleCalculator::setMapUnits ( QGis::UnitType  mapUnits)

Set the map units.

Parameters
mapUnitsUnits of the data on the map. Must match a value from the

Definition at line 40 of file qgsscalecalculator.cpp.

References mapUnits(), mMapUnits, and QgsDebugMsg.

Referenced by QgsComposerMap::scale(), QgsMapSettings::setMapUnits(), and QgsMapRenderer::setMapUnits().

Member Data Documentation

double QgsScaleCalculator::mDpi
private

dpi member

Definition at line 87 of file qgsscalecalculator.h.

Referenced by calculate(), dpi(), and setDpi().

QGis::UnitType QgsScaleCalculator::mMapUnits
private

map unit member

Definition at line 90 of file qgsscalecalculator.h.

Referenced by calculate(), mapUnits(), and setMapUnits().


The documentation for this class was generated from the following files: