Source code for wms.symbols

import mapscript

[docs]class WmsSymbolSet(): """ Symbol set for rendering data using different cartograpy styles. This includes styles for Points, Lines and Polygons (fills and outlines). """ symbol_size = 10 preset_symbols = [] custom_symbols = [] def __init__(self): """Initiates the preset symbols for the symbolset""" self._create_preset_point_symbols() self._create_preset_polygon_symbols()
[docs] def get_symbols(self): """Returns an array of mapscript symbols""" return self.preset_symbols + self.custom_symbols
def _create_preset_point_symbols(self): """Initiates preset point symbols""" # Circle symbol symb = mapscript.symbolObj('circle') symb.type = mapscript.MS_SYMBOL_ELLIPSE symb.filled = mapscript.MS_TRUE line = mapscript.lineObj() line.add(mapscript.pointObj()) symb.setPoints(line) symb.sizex = self.symbol_size symb.sizey = self.symbol_size self.preset_symbols.append(symb) # Square symbol symb = mapscript.symbolObj('square') symb.type = mapscript.MS_SYMBOL_VECTOR symb.filled = mapscript.MS_TRUE line = mapscript.lineObj() for pnt in [(0,0), (0, 10), (10, 10), (10, 0), (0, 0)]: line.add(mapscript.pointObj(pnt[0], pnt[1])) symb.setPoints(line) symb.sizex = self.symbol_size symb.sizey = self.symbol_size self.preset_symbols.append(symb) # Triangle symbol symb = mapscript.symbolObj('triangle') symb.type = mapscript.MS_SYMBOL_VECTOR symb.filled = mapscript.MS_TRUE line = mapscript.lineObj() for pnt in [(0,0), (14, 0), (7, 7), (0, 0)]: line.add(mapscript.pointObj(pnt[0], pnt[1])) symb.setPoints(line) symb.sizex = self.symbol_size symb.sizey = self.symbol_size self.preset_symbols.append(symb) # Cross symbol symb = mapscript.symbolObj('cross') symb.type = mapscript.MS_SYMBOL_VECTOR symb.filled = mapscript.MS_FALSE line = mapscript.lineObj() for pnt in [(0,0), (10, 10), (-99, -99), (0, 10), (10, 0)]: line.add(mapscript.pointObj(pnt[0], pnt[1])) symb.setPoints(line) symb.sizex = self.symbol_size symb.sizey = self.symbol_size self.preset_symbols.append(symb) # Diagonal symbol symb = mapscript.symbolObj('diagonal') symb.type = mapscript.MS_SYMBOL_VECTOR symb.filled = mapscript.MS_FALSE line = mapscript.lineObj() for pnt in [(0,0), (10, 10)]: line.add(mapscript.pointObj(pnt[0], pnt[1])) symb.setPoints(line) symb.sizex = self.symbol_size symb.sizey = self.symbol_size self.preset_symbols.append(symb) def _create_preset_polygon_symbols(self): """Create Preset polygon symbols""" # Hatch symbol from http://lists.osgeo.org/pipermail/\ # mapserver-users/2011-September/069884.html symb = mapscript.symbolObj('hatch') symb.type = mapscript.MS_SYMBOL_HATCH self.preset_symbols.append(symb)

Table Of Contents