def getLegend(layer, renderer, outputProjectFileName, safeLayerName): if isinstance(renderer, QgsSingleSymbolRenderer): symbol = renderer.symbol() legendIcon = QgsSymbolLayerUtils.symbolPreviewPixmap( symbol, QSize(16, 16)) legendIcon.save( os.path.join(outputProjectFileName, "legend", safeLayerName + ".png")) legend = ('<img src="legend/' + safeLayerName + '.png" /> ') legend += layer.name() else: if isinstance(renderer, QgsCategorizedSymbolRenderer): classes = renderer.categories() elif isinstance(renderer, QgsGraduatedSymbolRenderer): classes = renderer.ranges() elif isinstance(renderer, QgsRuleBasedRenderer): classes = renderer.rootRule().children() legend = layer.name().replace("'", "\\'") + "<br />" legend += "<table>" for cnt, c in enumerate(classes): symbol = c.symbol() legend = iconLegend(symbol, c, outputProjectFileName, safeLayerName, legend, cnt) legend += "</table>" symbol = classes[0].symbol() return (legend, symbol)
def getLegend(layer, renderer, outputProjectFileName, safeLayerName): if isinstance(renderer, QgsSingleSymbolRenderer): symbol = renderer.symbol() legendIcon = QgsSymbolLayerUtils.symbolPreviewPixmap(symbol, QSize(16, 16)) legendIcon.save(os.path.join(outputProjectFileName, "legend", safeLayerName + ".png")) legend = ('<img src="legend/' + safeLayerName + '.png" /> ') legend += layer.name() else: if isinstance(renderer, QgsCategorizedSymbolRenderer): classes = renderer.categories() elif isinstance(renderer, QgsGraduatedSymbolRenderer): classes = renderer.ranges() elif isinstance(renderer, QgsRuleBasedRenderer): classes = renderer.rootRule().children() legend = layer.name().replace("'", "\\'") + "<br />" legend += "<table>" for cnt, c in enumerate(classes): symbol = c.symbol() legend = iconLegend(symbol, c, outputProjectFileName, safeLayerName, legend, cnt) legend += "</table>" symbol = classes[0].symbol() return (legend, symbol)