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
Exemple #2
0
 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)