def testMarkLineUnitDefault(self): symbol = QgsMarkerLineSymbolLayer() symbol.setSubSymbol(QgsMarkerSymbol.createSimple({"color": "#ffffff", "size": "3"})) symbol.setInterval(5) symbol.setOffset(5) dom, root = self.symbolToSld(symbol) # print ("Mark line mm: \n" + dom.toString()) # size of the mark self.assertStaticSize(root, "11") # gap and offset self.assertStaticGap(root, "18") self.assertStaticPerpendicularOffset(root, "18")
def testMarkLineUnitDefault(self): symbol = QgsMarkerLineSymbolLayer() symbol.setSubSymbol( QgsMarkerSymbol.createSimple({'color': '#ffffff', 'size': '3'})) symbol.setInterval(5) symbol.setOffset(5) dom, root = self.symbolToSld(symbol) # print ("Mark line mm: \n" + dom.toString()) # size of the mark self.assertStaticSize(root, '11') # gap and offset self.assertStaticGap(root, '18') self.assertStaticPerpendicularOffset(root, '18')
def testMarkLineUnitPixels(self): symbol = QgsMarkerLineSymbolLayer() symbol.setSubSymbol(QgsMarkerSymbol.createSimple({"color": "#ffffff", "size": "3"})) symbol.setInterval(5) symbol.setOffset(5) symbol.setOutputUnit(QgsUnitTypes.RenderPixels) dom, root = self.symbolToSld(symbol) # print ("Mark line px: \n" + dom.toString()) # size of the mark self.assertStaticSize(root, "3") # gap and offset self.assertStaticGap(root, "5") self.assertStaticPerpendicularOffset(root, "5")
def testMarkLineUnitPixels(self): symbol = QgsMarkerLineSymbolLayer() symbol.setSubSymbol( QgsMarkerSymbol.createSimple({'color': '#ffffff', 'size': '3'})) symbol.setInterval(5) symbol.setOffset(5) symbol.setOutputUnit(QgsUnitTypes.RenderPixels) dom, root = self.symbolToSld(symbol) # print ("Mark line px: \n" + dom.toString()) # size of the mark self.assertStaticSize(root, '3') # gap and offset self.assertStaticGap(root, '5') self.assertStaticPerpendicularOffset(root, '5')
def append_MarkerLineSymbolLayer(symbol, layer: MarkerLineSymbolLayer, context: Context): """ Appends a MarkerLineSymbolLayer to a symbol """ template = layer.template # first work out total length of pattern current_length = 0 for t in template.pattern_parts: current_length += t[0] current_length += t[1] total_length = current_length * template.pattern_interval marker = Symbol_to_QgsSymbol(layer.pattern_marker, context) marker.setAngle(90) current_offset_from_start = 0 for t in template.pattern_parts: if t[0]: # marker line = QgsMarkerLineSymbolLayer(True) start_marker = marker.clone() start_marker.setAngle(start_marker.angle() - 90) line.setSubSymbol(start_marker) line.setOffset(-context.convert_size(layer.offset)) line.setOffsetUnit(context.units) line.setInterval(context.convert_size(total_length)) line.setIntervalUnit(context.units) line.setOffsetAlongLine( context.convert_size(current_offset_from_start + template.pattern_interval / 2)) line.setOffsetAlongLineUnit(context.units) symbol.appendSymbolLayer(line) current_offset_from_start += template.pattern_interval * t[0] if t[1]: # space current_offset_from_start += template.pattern_interval * t[1] if layer.decoration is not None: append_Decorations(symbol, layer.decoration, context)