فهرست منبع

wxGUI/dbmgr: add some padding when zooming to feature (needed especially for points)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@52033 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 13 سال پیش
والد
کامیت
62aaa3563b
1فایلهای تغییر یافته به همراه13 افزوده شده و 4 حذف شده
  1. 13 4
      gui/wxpython/dbmgr/manager.py

+ 13 - 4
gui/wxpython/dbmgr/manager.py

@@ -1299,10 +1299,19 @@ class AttributeManager(wx.Frame):
                 for line in select.splitlines():
                     key, value = line.split('=')
                     region[key.strip()] = float(value.strip())
-                
-                self.mapdisplay.Map.GetRegion(n = region['n'], s = region['s'],
-                                              w = region['w'], e = region['e'],
-                                              update = True)
+
+                nsdist = ewdist = 0
+                renderer = self.mapdisplay.GetMap()
+                nsdist = 10 * ((renderer.GetCurrentRegion()['n'] - renderer.GetCurrentRegion()['s']) /
+                        renderer.height)
+                ewdist = 10 * ((renderer.GetCurrentRegion()['e'] - renderer.GetCurrentRegion()['w']) /
+                        renderer.width)
+                north = region['n'] + nsdist
+                south = region['s'] - nsdist
+                west = region['w'] - ewdist
+                east = region['e'] + ewdist
+                renderer.GetRegion(n = north, s = south, w = west, e = east, update = True)
+                self.mapdisplay.GetMapWindow().ZoomHistory(n = north, s = south, w = west, e = east)
         
         if zoom:
             self.mapdisplay.Map.AdjustRegion()           # adjust resolution