Browse Source

wxGUI: fix distance formatting for ll projection (recent change broke it)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@57399 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 11 years ago
parent
commit
ad47342de5
1 changed files with 14 additions and 8 deletions
  1. 14 8
      gui/wxpython/mapdisp/frame.py

+ 14 - 8
gui/wxpython/mapdisp/frame.py

@@ -1226,12 +1226,14 @@ class MeasureController:
         self._mapWindow = self._giface.GetMapWindow()
         self._projInfo = self._mapWindow.Map.projinfo
         self._measureGraphics = None
-        
+
         self._totaldist = 0.0 # total measured distance
-        
+
         self._oldMouseUse = None
         self._oldCursor = None
-        
+
+        self._useCtypes = False
+
     def IsMeasuring(self):
         """!Returns True if measuring mode is enabled, otherwise False"""
         return bool(self._measureGraphics)
@@ -1329,10 +1331,11 @@ class MeasureController:
             try:
                 import grass.lib.gis as gislib
                 gislib.G_begin_distance_calculations()
+                self._useCtypes = True
             except ImportError, e:
-                self._giface.WriteWarning(_('Geodesic distance is not yet '
-                                                          'supported by this tool.\n'
-                                                          'Reason: %s' % e))
+                self._giface.WriteWarning(_('Geodesic distance calculation '
+                                            'is not available.\n'
+                                            'Reason: %s' % e))
         
     def MeasureDist(self, beginpt, endpt):
         """!Calculate distance and print to output window.
@@ -1343,11 +1346,14 @@ class MeasureController:
         dist, (north, east) = self._mapWindow.Distance(beginpt, endpt, screen=False)
         
         dist = round(dist, 3)
-        d, dunits = units.formatDist(dist, self._projInfo['units'])
+        mapunits = self._projInfo['units']
+        if mapunits == 'degrees' and self._useCtypes:
+            mapunits = 'meters'
+        d, dunits = units.formatDist(dist, mapunits)
         
         self._totaldist += dist
         td, tdunits = units.formatDist(self._totaldist,
-                                       self._projInfo['units'])
+                                       mapunits)
         
         strdist = str(d)
         strtotdist = str(td)