Quantum GIS API Documentation  1.7.5-Wroclaw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes
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.
void setDpi (double dpi)
 Set the dpi to be used in scale calculations.
double dpi ()
 Accessor for dpi used in scale calculations.
void setMapUnits (QGis::UnitType mapUnits)
 Set the map units.
QGis::UnitType mapUnits () const
 Returns current map units.
double calculate (const QgsRectangle &mapExtent, int canvasWidth)
 Calculate the scale.
double calculateGeographicDistance (const QgsRectangle &mapExtent)
 Calculate the distance between two points in geographic coordinates.

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

QgsScaleCalculator::~QgsScaleCalculator ( )

Destructor.

Definition at line 29 of file qgsscalecalculator.cpp.


Member Function Documentation

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

Calculate the scale.

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

Definition at line 53 of file qgsscalecalculator.cpp.

References calculateGeographicDistance(), QGis::DecimalDegrees, QGis::DegreesDecimalMinutes, QGis::DegreesMinutesSeconds, QGis::Feet, mDpi, QGis::Meters, mMapUnits, QgsDebugMsg, QgsRectangle::xMaximum(), and QgsRectangle::xMinimum().

Referenced by QgsComposerMap::scale(), 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 100 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 36 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 47 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 32 of file qgsscalecalculator.cpp.

References dpi(), and mDpi.

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

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

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: