/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/Model/layer.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/Model/layer.py

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

revision 2343 by bernhard, Mon Sep 20 08:13:32 2004 UTC revision 2551 by jonathan, Thu Jan 27 14:19:41 2005 UTC
# Line 25  from data import SHAPETYPE_POLYGON, SHAP Line 25  from data import SHAPETYPE_POLYGON, SHAP
25    
26  import resource  import resource
27    
28    from color import Color
29    
30  shapetype_names = {SHAPETYPE_POINT: "Point",  shapetype_names = {SHAPETYPE_POINT: "Point",
31                     SHAPETYPE_ARC: "Arc",                     SHAPETYPE_ARC: "Arc",
# Line 71  class BaseLayer(TitledObject, Modifiable Line 72  class BaseLayer(TitledObject, Modifiable
72          self.projection = projection          self.projection = projection
73          self.changed(LAYER_PROJECTION_CHANGED, self)          self.changed(LAYER_PROJECTION_CHANGED, self)
74    
75        def Type(self):
76            return "Unknown"
77    
78  class Layer(BaseLayer):  class Layer(BaseLayer):
79    
80      """Represent the information of one geodata file (currently a shapefile)      """Represent the information of one geodata file (currently a shapefile)
# Line 171  class Layer(BaseLayer): Line 175  class Layer(BaseLayer):
175              bbox = self.projection.InverseBBox(bbox)              bbox = self.projection.InverseBBox(bbox)
176          return bbox          return bbox
177    
178        def Type(self):
179            return self.ShapeType();
180    
181      def ShapesBoundingBox(self, shapes):      def ShapesBoundingBox(self, shapes):
182          """Return a bounding box in lat/long coordinates for the given          """Return a bounding box in lat/long coordinates for the given
183          list of shape ids.          list of shape ids.
# Line 360  class RasterLayer(BaseLayer): Line 367  class RasterLayer(BaseLayer):
367    
368          self.bbox = -1          self.bbox = -1
369    
370            self.use_mask = False
371    
372            self.image_info = None
373    
374          if resource.has_gdal_support():          if resource.has_gdal_support():
375              #              #
376              # temporarily open the file so that GDAL can test if it's valid.              # temporarily open the file so that GDAL can test if it's valid.
# Line 369  class RasterLayer(BaseLayer): Line 380  class RasterLayer(BaseLayer):
380              if dataset is None:              if dataset is None:
381                  raise IOError()                  raise IOError()
382    
383                #
384                # while we have the file, extract some basic information
385                # that we can display later
386                #
387                self.image_info = {}
388    
389                self.image_info["nBands"] = dataset.RasterCount
390                self.image_info["Size"] = (dataset.RasterXSize, dataset.RasterYSize)
391                self.image_info["Driver"] = dataset.GetDriver().ShortName
392    
393                # store some information about the individual bands
394                # [min_value, max_value]
395                a = self.image_info["BandData"] = []
396    
397                for i in range(1, dataset.RasterCount+1):
398                    band = dataset.GetRasterBand(i)
399                    a.append(band.ComputeRasterMinMax())
400    
401          self.UnsetModified()          self.UnsetModified()
402    
403      def BoundingBox(self):      def BoundingBox(self):
# Line 423  class RasterLayer(BaseLayer): Line 452  class RasterLayer(BaseLayer):
452    
453          return bbox          return bbox
454    
455        def Type(self):
456            return "Image"
457    
458      def GetImageFilename(self):      def GetImageFilename(self):
459          return self.filename          return self.filename
460    
461        def UseMask(self):
462            """Return True if the mask should be used when rendering the layer."""
463            return self.use_mask
464    
465        def SetUseMask(self, use):
466            """Set whether to use a mask when render the image.
467    
468            If the state changes, a LAYER_CHANGED message is sent.
469            """
470            if use != self.use_mask:
471                self.use_mask = use
472                self.changed(LAYER_CHANGED, self)
473    
474        def ImageInfo(self):
475            return self.image_info
476    
477      def TreeInfo(self):      def TreeInfo(self):
478          items = []          items = []
479    

Legend:
Removed from v.2343  
changed lines
  Added in v.2551

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26