QGIS API Documentation  master-3f58142
QgsScaleCalculator Class Reference

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

#include <qgsscalecalculator.h>

List of all members.

Public Member Functions

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

Private Attributes

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

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

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.

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, QgsDebugMsg, QgsRectangle::xMaximum(), and QgsRectangle::xMinimum().

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

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 88 of file qgsscalecalculator.cpp.

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

Referenced by calculate().

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().

Returns current map units.

Definition at line 46 of file qgsscalecalculator.cpp.

References mMapUnits, and QgsDebugMsgLevel.

Referenced by QgsMapRenderer::mapUnits(), QgsMapRenderer::render(), 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(), and QgsMapRenderer::setOutputSize().

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(), 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().

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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines