def subRenderer(self, color): lineSymbol = QgsLineSymbolV2() arrowSymbol = QgsArrowSymbolLayer().create() arrowSymbol.setArrowWidth(0.0) arrowSymbol.setArrowStartWidth(0.0) arrowSymbol.setColor(color) arrowSymbol.setIsCurved(False) arrowSymbol.setIsRepeated(False) renderSetting = QgsRenderContext() renderSetting.setFlag(QgsRenderContext.Antialiasing, False) renderSetting.setFlag(QgsRenderContext.DrawSymbolBounds, False) renderSetting.setFlag(QgsRenderContext.ForceVectorOutput, False) renderSetting.setFlag(QgsRenderContext.UseAdvancedEffects, False) renderSetting.setFlag(QgsRenderContext.UseRenderingOptimization, False) arrEffectStack = arrowSymbol.paintEffect() effList = arrEffectStack.effectList() for i in range(0, len(effList)): if type(effList[i]) == QgsDrawSourceEffect: effList[i].setDrawMode(1) arrEffectStack.setEnabled(True) lineSymbol.appendSymbolLayer(arrowSymbol) return lineSymbol
def __init__(self, iface, name, qcolor, width, attributes, layer_group=None, visible=True): "..." WGS84Layer.__init__(self, iface, name, "LineString", visible, layer_group) arrow_layer = QgsArrowSymbolLayer() arrow_layer.setColor(qcolor) arrow_layer.setArrowWidth(width) arrow_layer.setArrowStartWidth(width) arrow_layer.setHeadThickness(width * 2.0) self.layer.renderer().symbol().changeSymbolLayer(0, arrow_layer) WGS84Layer.refresh_legend(self) self.set_attributes(attributes)