Skip to content

Commit a3be3c2

Browse files
author
timlinux
committed
Fix for #846 - No miles / inches display in scale bar
git-svn-id: http://svn.osgeo.org/qgis/trunk@7741 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 7c0a653 commit a3be3c2

File tree

1 file changed

+56
-37
lines changed

1 file changed

+56
-37
lines changed

src/plugins/scale_bar/plugin.cpp

+56-37
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ void QgsScaleBarPlugin::run()
162162
switch (myUnits)
163163
{
164164
case 0: myPluginGui->getSpinSize()->setSuffix(tr(" metres/km")); break;
165-
case 1: myPluginGui->getSpinSize()->setSuffix(tr(" feet")); break;
165+
case 1: myPluginGui->getSpinSize()->setSuffix(tr(" feet/miles")); break;
166166
case 2: myPluginGui->getSpinSize()->setSuffix(tr(" degrees")); break;
167167
default: std::cout << "Error: not picked up map units - actual value = " << myUnits << std::endl;
168168
};
@@ -237,42 +237,61 @@ void QgsScaleBarPlugin::renderScaleBar(QPainter * theQPainter)
237237
QString myScaleBarUnitLabel;
238238
switch (myMapUnits)
239239
{
240-
case QGis::METERS:
241-
if (myActualSize > 1000.0)
242-
{
243-
myScaleBarUnitLabel=tr(" km");
244-
myActualSize = myActualSize/1000;
245-
}
246-
else if (myActualSize < 0.01)
247-
{
248-
myScaleBarUnitLabel=tr(" mm");
249-
myActualSize = myActualSize*1000;
250-
}
251-
else if (myActualSize < 0.1)
252-
{
253-
myScaleBarUnitLabel=tr(" cm");
254-
myActualSize = myActualSize*100;
255-
}
256-
else
257-
myScaleBarUnitLabel=tr(" m");
258-
break;
259-
case QGis::FEET:
260-
if (myActualSize == 1.0)
261-
myScaleBarUnitLabel=tr(" foot");
262-
else
263-
myScaleBarUnitLabel=tr(" feet");
264-
break;
265-
case QGis::DEGREES:
266-
if (myActualSize == 1.0)
267-
myScaleBarUnitLabel=tr(" degree");
268-
else
269-
myScaleBarUnitLabel=tr(" degrees");
270-
break;
271-
case QGis::UNKNOWN:
272-
myScaleBarUnitLabel=tr(" unknown");
273-
default:
274-
std::cout << "Error: not picked up map units - actual value = "
275-
<< myMapUnits << std::endl;
240+
case QGis::METERS:
241+
if (myActualSize > 1000.0)
242+
{
243+
myScaleBarUnitLabel=tr(" km");
244+
myActualSize = myActualSize/1000;
245+
}
246+
else if (myActualSize < 0.01)
247+
{
248+
myScaleBarUnitLabel=tr(" mm");
249+
myActualSize = myActualSize*1000;
250+
}
251+
else if (myActualSize < 0.1)
252+
{
253+
myScaleBarUnitLabel=tr(" cm");
254+
myActualSize = myActualSize*100;
255+
}
256+
else
257+
myScaleBarUnitLabel=tr(" m");
258+
break;
259+
case QGis::FEET:
260+
if (myActualSize > 5280.0) //5280 feet to the mile
261+
{
262+
myScaleBarUnitLabel=tr(" miles");
263+
myActualSize = myActualSize/5280;
264+
}
265+
else if (myActualSize == 5280.0) //5280 feet to the mile
266+
{
267+
myScaleBarUnitLabel=tr(" mile");
268+
myActualSize = myActualSize/5280;
269+
}
270+
else if (myActualSize < 1)
271+
{
272+
myScaleBarUnitLabel=tr(" inches");
273+
myActualSize = myActualSize*12;
274+
}
275+
else if (myActualSize == 1.0)
276+
{
277+
myScaleBarUnitLabel=tr(" foot");
278+
}
279+
else
280+
{
281+
myScaleBarUnitLabel=tr(" feet");
282+
}
283+
break;
284+
case QGis::DEGREES:
285+
if (myActualSize == 1.0)
286+
myScaleBarUnitLabel=tr(" degree");
287+
else
288+
myScaleBarUnitLabel=tr(" degrees");
289+
break;
290+
case QGis::UNKNOWN:
291+
myScaleBarUnitLabel=tr(" unknown");
292+
default:
293+
std::cout << "Error: not picked up map units - actual value = "
294+
<< myMapUnits << std::endl;
276295
};
277296

278297
//Set font and calculate width of unit label

0 commit comments

Comments
 (0)