/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/UI/renderer.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/UI/renderer.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 938 by jonathan, Tue May 20 15:25:10 2003 UTC revision 1219 by bh, Mon Jun 16 17:42:54 2003 UTC
# Line 35  from Thuban.Model.label import ALIGN_CEN Line 35  from Thuban.Model.label import ALIGN_CEN
35    
36  from Thuban.Model.classification import Classification  from Thuban.Model.classification import Classification
37  from Thuban.Model.color import Color  from Thuban.Model.color import Color
38    import Thuban.Model.resource
39    
40  class MapRenderer:  class MapRenderer:
41    
# Line 72  class MapRenderer: Line 73  class MapRenderer:
73          self.map = map          self.map = map
74          seenRaster = True          seenRaster = True
75    
76            if self.scale == 0:
77                return
78    
79          #          #
80          # This is only a good optimization if there is only one          # This is only a good optimization if there is only one
81          # raster layer and the image covers the entire window (as          # raster layer and the image covers the entire window (as
82          # it currently does).          # it currently does). We note if there is a raster layer
83            # and only begin drawing layers once we have drawn it.
84            # That way we avoid drawing layers that won't be seen.
85          #          #
86          for layer in map.Layers():          for layer in map.Layers():
87              if isinstance(layer, RasterLayer):              if isinstance(layer, RasterLayer) and layer.Visible():
88                  seenRaster = False                  seenRaster = False
89                  break                  break
90    
# Line 88  class MapRenderer: Line 94  class MapRenderer:
94              if not self.honor_visibility or layer.Visible():              if not self.honor_visibility or layer.Visible():
95                  if isinstance(layer, Layer) and seenRaster:                  if isinstance(layer, Layer) and seenRaster:
96                      self.draw_shape_layer(layer)                      self.draw_shape_layer(layer)
97                  elif isinstance(layer, RasterLayer):                  elif isinstance(layer, RasterLayer) \
98                        and Thuban.Model.resource.has_gdal_support():
99                      self.draw_raster_layer(layer)                      self.draw_raster_layer(layer)
100                      seenRaster = True                      seenRaster = True
101    
# Line 122  class MapRenderer: Line 129  class MapRenderer:
129          else:          else:
130              draw_func = lambda i: \              draw_func = lambda i: \
131                     self.draw_polygon_shape(polygon_render_param, i, pen, brush)                     self.draw_polygon_shape(polygon_render_param, i, pen, brush)
132                
133            table = layer.ShapeStore().Table()
134          for i in self.layer_ids(layer):          for i in self.layer_ids(layer):
135    
136              if field is None:              if field is None:
137                  group = defaultGroup                  group = defaultGroup
138              else:              else:
139                  record = layer.table.ReadRowAsDict(i)                  record = table.ReadRowAsDict(i)
140                  assert record is not None                  assert record is not None
141                  group = lc.FindGroup(record[field])                  group = lc.FindGroup(record[field])
142    
# Line 189  class MapRenderer: Line 197  class MapRenderer:
197              for p in proj.GetAllParameters():              for p in proj.GetAllParameters():
198                  outProj += "+" + p + " "                  outProj += "+" + p + " "
199    
         print "self.scale: ", self.scale, offx, offy, width, height  
200          xmin = (0 - offx) / self.scale          xmin = (0 - offx) / self.scale
201          ymin = (offy - height) / self.scale          ymin = (offy - height) / self.scale
202          xmax = (width - offx) / self.scale          xmax = (width - offx) / self.scale
# Line 200  class MapRenderer: Line 207  class MapRenderer:
207                  layer.GetImageFilename(),                  layer.GetImageFilename(),
208                  inProj,                  inProj,
209                  outProj,                  outProj,
210                  str(xmin), str(ymin), str(xmax), str(ymax),                  (xmin, ymin, xmax, ymax),
211                  "", str(width), str(height));                  "", (width, height))
212          except (AttributeError, IOError, ValueError):          except IOError, (strerr):
213                print strerr
214            except (AttributeError, ValueError):
215              pass              pass
216          else:          else:
217              if data is not None:              if data is not None:
# Line 224  class MapRenderer: Line 233  class MapRenderer:
233      def polygon_render_param(self, layer):      def polygon_render_param(self, layer):
234          """Return the low-lever render parameter for the layer"""          """Return the low-lever render parameter for the layer"""
235          offx, offy = self.offset          offx, offy = self.offset
236          return draw_polygon_init(layer.shapefile, self.dc,          return draw_polygon_init(layer.ShapeStore().Shapefile(), self.dc,
237                                   self.map.projection,                                   self.map.projection,
238                                   layer.projection,                                   layer.projection,
239                                   self.scale, -self.scale,                                   self.scale, -self.scale,

Legend:
Removed from v.938  
changed lines
  Added in v.1219

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26