26 : mDpi( dpi ), mMapUnits( mapUnits )
43 QgsDebugMsg( QString(
"Map units set to %1" ).arg( QString::number( mapUnits ) ) );
55 double conversionFactor = 0;
63 conversionFactor = 39.3700787;
67 conversionFactor = 12.0;
72 conversionFactor = 39.3700787;
77 conversionFactor = 39.3700787;
82 conversionFactor = 39.3700787;
86 Q_ASSERT(
"bad map units" );
89 QgsDebugMsg(
"Using conversionFactor of " + QString::number( conversionFactor ) );
90 if ( canvasWidth == 0 ||
mDpi == 0 )
92 QgsDebugMsg(
"Can't calculate scale from the input values" );
95 double scale = ( delta * conversionFactor ) / ((
double )canvasWidth /
mDpi );
127 const static double rads = ( 4.0 * atan( 1.0 ) ) / 180.0;
128 double a = pow( cos( lat * rads ), 2 );
129 double c = 2.0 * atan2( sqrt( a ), sqrt( 1.0 - a ) );
130 const static double ra = 6378000;
133 const static double e = 0.0810820288;
134 double radius = ra * ( 1.0 - e * e ) /
135 pow( 1.0 - e * e * sin( lat * rads ) * sin( lat * rads ), 1.5 );
136 double meters = ( mapExtent.
xMaximum() - mapExtent.
xMinimum() ) / 180.0 * radius * c;
138 QgsDebugMsg(
"Distance across map extent (m): " + QString::number( meters ) );