/[thuban]/trunk/thuban/Extensions/umn_mapserver/mapfile.py
ViewVC logotype

Diff of /trunk/thuban/Extensions/umn_mapserver/mapfile.py

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

revision 2264 by jschuengel, Thu Jul 1 14:39:00 2004 UTC revision 2265 by jschuengel, Tue Jul 6 14:28:52 2004 UTC
# Line 34  import os Line 34  import os
34    
35  from Thuban.Model.color import Color, Transparent  from Thuban.Model.color import Color, Transparent
36    
37  from mapscript import layerObj, classObj, colorObj, styleObj, rectObj  from mapscript import layerObj, classObj, colorObj, styleObj, rectObj, symbolObj, \
38                          pointObj, lineObj
39                                                
40    
41  # ###################################  # ###################################
# Line 63  legend_status_type = { 0:"OFF", Line 64  legend_status_type = { 0:"OFF",
64                          3:"embed" }                          3:"embed" }
65                          # 2 = Default but will not be imported because                          # 2 = Default but will not be imported because
66                          # mapscript dont support it and its not allowed                          # mapscript dont support it and its not allowed
67    scalebar_status_type = { 0:"OFF",
68                            1:"ON",
69                            3:"embed" }
70                            # 2 = Default but will not be imported because
71                            # mapscript dont support it and its not allowed
72    
73    scalebar_style_type = { 0:"0",
74                            1:"1" }
75    
76    scalebar_position_type = { 0:"ul",
77                             1:"lr",
78                             2:"ur",
79                             3:"ll",
80                             6:"uc",
81                             7:"lc"}
82    
83  layer_status_type = { 0:"OFF",  layer_status_type = { 0:"OFF",
84                          1:"ON",                          1:"ON",
# Line 236  class MF_Symbol: Line 252  class MF_Symbol:
252      getPoints(), setStyle()      getPoints(), setStyle()
253      """      """
254            
255      def __init__(self, mf_symbol):      def __init__(self, mf_symbol = "newone"):
256          print "nothing"          # create a circle Object like shown in Thuban
257            # because Thuban don't support other symbols
258            if mf_symbol == "newone":
259                mf_symbol = symbolObj("")            
260                newpoint = pointObj()
261                newpoint.x = 1
262                newpoint.y = 1
263                newline = lineObj()
264                newline.add(newpoint)
265                mf_symbol.setPoints(newline)
266            
267            self._symbol = mf_symbol
268        
269        def get_symbolObj(self):
270            return self._symbol
271        
272        def get_name(self):
273            return self._symbol.name
274        
275        def set_name(self, new_name):
276            self._symbol.name = new_name
277        
278        def set_type(self, new_type):
279            # TODO include a function to set the type by a string
280            self._symbol.type = new_type
281        
282        def set_filled(self, new_filled):
283            if new_filled:
284                self._symbol.filled = 1
285            else:
286                self._symbol.filled = 0
287        
288        
289    
290  class MF_SymbolSet:  class MF_SymbolSet:
291      """      """
# Line 252  class MF_SymbolSet: Line 300  class MF_SymbolSet:
300      # create an extra symbol file and not to include it direct to the      # create an extra symbol file and not to include it direct to the
301      # mapfile itself      # mapfile itself
302      def __init__(self, mf_symbolset):      def __init__(self, mf_symbolset):
303          print "nothing"          self._symbolset = mf_symbolset
304            
305            # Initial Symbol List
306            self._symbols = []
307            self._numsymbols = self._symbolset.numsymbols
308            self._i = 1
309            while self._i < self._numsymbols:
310                self._symbols.append(MF_Symbol(self._symbolset.getSymbol(self._i)))
311                self._i += 1
312    
313    #    POINT
314    #   1 1
315    #   END
316    
317        def add_symbol(self, new_symbol):
318            self._symbolset.appendSymbol(new_symbol.get_symbolObj())
319            self._symbols.append(new_symbol)
320            # the save function must be run to set the symbols to the
321            # mapfile. I don't know why this ist so but it must be.
322            self._symbolset.save("tempsymbol")
323            os.remove("tempsymbol")
324    
325        def get_symbol(self, symbolnr):
326            if symbolnr < self._numsymbols:
327                return self._symbols[symbolnr-1]
328            else:
329                return None
330    
331  class MF_Class:  class MF_Class:
332      """      """
# Line 318  class MF_Class: Line 391  class MF_Class:
391          self._clazz.setExpression(newstring)          self._clazz.setExpression(newstring)
392          self._expression = self._clazz.getExpressionString()          self._expression = self._clazz.getExpressionString()
393            
394        def get_status(self):
395            if self._clazz.status == 1:
396                return True
397            else:
398                return False
399        
400        def set_status(self, new_status):
401            if new_status:
402                self._clazz.status = 1
403            else:
404                self._clazz.status = 0
405    
406      def add_thubanstyle(self, tb_style, type="default"):      def add_thubanstyle(self, tb_style, type="default"):
407          """          """
408          added a thuban style object to the mapobject          added a thuban style object to the mapobject
# Line 341  class MF_Class: Line 426  class MF_Class:
426              new_styleobj.set_color(tb_style.GetFill())              new_styleobj.set_color(tb_style.GetFill())
427    
428    
429    
430  class MF_Layer:  class MF_Layer:
431      """      """
432      The following parameters and functions, which the mapscript style obj      The following parameters and functions, which the mapscript style obj
# Line 495  class MF_Layer: Line 581  class MF_Layer:
581              new_class.set_expressionstring('/./')              new_class.set_expressionstring('/./')
582          else:          else:
583              new_class.set_expressionstring(str(tb_class.GetValue()))              new_class.set_expressionstring(str(tb_class.GetValue()))
584            new_class.set_status(tb_class.IsVisible())
585          self._classes.append(new_class)          self._classes.append(new_class)
586    
587    class MF_Scalebar:
588        """
589        The following settings are (not) used:
590        imagecolor, height, width, style, intervals, label, color, backgroundcolor,
591        outlinecolor, units, status, position, postlabelcache
592        """
593        def __init__(self, mf_scalebar):
594            self._scalebar = mf_scalebar
595            self._color = MF_Color(self._scalebar.color)
596            self._imagecolor = MF_Color(self._scalebar.imagecolor)
597            self._label = MF_Label(self._scalebar.label)
598        
599        def get_label(self):
600            return self._label
601        
602        def get_color(self):
603            return self._color
604        
605        def get_imagecolor(self):
606            return self._imagecolor
607        
608        def get_style(self):
609            return self._scalebar.style
610        
611        def set_style(self, new_style):
612            self._scalebar.style = new_style
613        
614        def get_size(self):
615            #returns the size
616            return (self._scalebar.width, self._scalebar.height)
617    
618        def set_size(self, new_width, new_height):
619            self._scalebar.width = new_width
620            self._scalebar.height = new_height
621        
622        def get_intervals(self):
623            return self._scalebar.intervals
624        
625        def set_intervals(self, new_intervals):
626            self._scalebar.intervals = new_intervals
627    
628        def get_units(self):
629            #returns the unittype
630            return unit_type[self._scalebar.units]
631    
632        def set_units(self, units):
633            if unit_type.has_key(units):
634                self._scalebar.units = units
635            else:
636                for unit_paar_nr in unit_type:
637                   if unit_type[unit_paar_nr] == units:
638                       self._scalebar.units = unit_paar_nr
639            
640        def get_status(self, art="integer"):
641            if art == "string":
642                return scalebar_status_type[self._scalebar.status]
643            else:
644                return self._scalebar.status
645        
646        def set_status(self, new_status):
647            if scalebar_status_type.has_key(new_status):
648                self._scalebar.status = new_status
649            else:
650                for scalebar_status_type_nr in scalebar_status_type:
651                    if scalebar_status_type[scalebar_status_type_nr] == new_status:
652                        self._scalebar.status = scalebar_status_type_nr
653        
654        def get_position(self, art="integer"):
655            if art == "string":
656                return scalebar_position_type[self._scalebar.position]
657            else:
658                return self._scalebar.position
659        
660        def set_position(self, new_position):
661            if scalebar_position_type.has_key(new_position):
662                self._scalebar.position = new_position
663            else:
664                for scalebar_position_type_nr in legend_position_type:
665                    if scalebar_position_type[scalebar_position_type_nr] == new_position:
666                        self._scalebar.position = scalebar_position_type_nr
667    
668  class MF_Map:  class MF_Map:
669      """      """
# Line 538  class MF_Map: Line 705  class MF_Map:
705          self._imagecolor = MF_Color(self._mf_map.imagecolor)          self._imagecolor = MF_Color(self._mf_map.imagecolor)
706          self._web = MF_Web(self._mf_map.web)          self._web = MF_Web(self._mf_map.web)
707          self._legend = MF_Legend(self._mf_map.legend)          self._legend = MF_Legend(self._mf_map.legend)
708            self._scalebar = MF_Scalebar(self._mf_map.scalebar)
709            
710            # symbols
711            self._symbolset = MF_SymbolSet(self._mf_map.symbolset)
712    
713          # if the map name is not set it will return a MS string.          # if the map name is not set it will return a MS string.
714          if self._mf_map.name != "MS":          if self._mf_map.name != "MS":
# Line 573  class MF_Map: Line 744  class MF_Map:
744                  self._metadata.add_metadata(self._metafkey,self._metakeydata)                  self._metadata.add_metadata(self._metafkey,self._metakeydata)
745                  self._metafkey = self._mf_map.getNextMetaDataKey(self._metafkey)                  self._metafkey = self._mf_map.getNextMetaDataKey(self._metafkey)
746            
747        def get_symbolset(self):
748            return self._symbolset
749        
750      def get_status(self):      def get_status(self):
751          if layer_status_type[self._mf_map.status] == "OFF":          if layer_status_type[self._mf_map.status] == "OFF":
752              return false              return false
753          else:          else:
754              return true              return true
755    
756        def get_scalebar(self):
757            return self._scalebar
758        
759      def get_web(self):      def get_web(self):
760          return self._web          return self._web
761            
# Line 659  class MF_Map: Line 836  class MF_Map:
836          Add a thuban layer          Add a thuban layer
837          """          """
838          new_layer = MF_Layer(layerObj(self._mf_map))          new_layer = MF_Layer(layerObj(self._mf_map))
839          new_layer.set_name(tb_layer.Title())          new_layer.set_name(tb_layer.Title())        
840                    
841          # TODO: implement relative pathnames          # TODO: implement relative pathnames
842          # yet only absolute pathnames in the LayerObj are set          # yet only absolute pathnames in the LayerObj are set
# Line 668  class MF_Map: Line 845  class MF_Map:
845          except:          except:
846              new_layer.set_data(tb_layer.GetImageFilename(), type="raster")              new_layer.set_data(tb_layer.GetImageFilename(), type="raster")
847              new_layer.set_type("raster")              new_layer.set_type("raster")
848                new_layer.set_status(tb_layer.Visible())
849          else:          else:
850              new_layer.set_status(tb_layer.Visible())              new_layer.set_status(tb_layer.Visible())
851              new_layer.set_type(tb_layer.ShapeType())              new_layer.set_type(tb_layer.ShapeType())
# Line 769  class MF_Label: Line 947  class MF_Label:
947      def get_color(self):      def get_color(self):
948          return self._color          return self._color
949            
950        def get_partials(self):
951            if self._label.partials == 1:
952                return True
953            else:
954                return False
955        
956        def set_partials(self, new_partials):
957            # if partials = True
958            if new_partials:
959                self._label.partials = 1
960            elif new_partials == False:
961                self._label.partials = 0
962            else:
963                print "Boolean exspected"
964        
965      def get_type(self):      def get_type(self):
966          return label_font_type[self._label.type]          return label_font_type[self._label.type]
967            
# Line 853  class MF_Legend: Line 1046  class MF_Legend:
1046                  if legend_position_type[legend_position_type_nr] == new_position:                  if legend_position_type[legend_position_type_nr] == new_position:
1047                      self._mf_legend.position = legend_position_type_nr                      self._mf_legend.position = legend_position_type_nr
1048    
   
1049  class MF_Projection:  class MF_Projection:
1050      """      """
1051      The following parameter, which the mapscript style obj contains is used:      The following parameter, which the mapscript style obj contains is used:

Legend:
Removed from v.2264  
changed lines
  Added in v.2265

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26