Пример #1
0
        def testMap():
            # Parámetros mapa
            colorFill = mv.MAP_COLORS['Blau']
            colorOut = mv.MAP_CONTORNS['Blanc']
            inc = 8
            opacity = 0.55
            field = "RESULTAT"
            name = "DESCRIPCIO"
            decs = 0

            capa = leyenda.currentLayer()  # Capa de polígonos a mapificar
            geom = capa.geometryType()

            if (geom == QgsWkbTypes.GeometryType.PolygonGeometry):

                # Creamos simbología del punto centroide
                symbology = QgsCentroidFillSymbolLayer()
                symbology.setPointOnAllParts(False)
                symbology.setPointOnSurface(False)

                # Ajustamos valores del símbolo proporcional
                layerSymbol = symbology.subSymbol().symbolLayer(
                    0)  # QgsSimpleMarkerSymbolLayer
                layerSymbol.setFillColor(colorFill)
                layerSymbol.setStrokeColor(colorOut)
                layerSymbol.setStrokeStyle(Qt.SolidLine)
                layerSymbol.setStrokeWidth(1.0)
                layerSymbol.setStrokeWidthUnit(QgsUnitTypes.RenderPixels)
                expr = calcExpr(field, inc)
                prop = QgsProperty.fromExpression(expr)
                layerSymbol.setDataDefinedProperty(QgsSymbolLayer.PropertySize,
                                                   prop)

                # Crear símbolo y asignarle la simbología
                sym = QgsFillSymbol.createSimple({
                    'color':
                    '{}'.format(colorFill.name()),
                    'outline_color':
                    '{}'.format(colorOut.name())
                })
                sym.changeSymbolLayer(0, symbology)

                # Crear renderer y asignar a la capa
                renderer = QgsSingleSymbolRenderer(sym)
                capa.setRenderer(renderer)
                capa.setOpacity(opacity)
                expr = calcTip(field, name, decs)
                capa.setMapTipTemplate(expr)
                capa.triggerRepaint()

                return
Пример #2
0
    def calcRender(self, capa):

        renderer = None
        geom = capa.geometryType()

        if (geom == QgsWkbTypes.GeometryType.PolygonGeometry):

            # Creamos simbología del punto centroide
            symbology = QgsCentroidFillSymbolLayer()
            symbology.setPointOnAllParts(False)
            symbology.setPointOnSurface(False)

            # Ajustamos valores del símbolo proporcional
            self.setStrokeSymbology(symbology.subSymbol())

            # Crear símbolo y asignarle la simbología
            sym = QgsFillSymbol.createSimple({
                'color':
                '{}'.format(self.params.colorBase.name()),
                'outline_color':
                '{}'.format(self.params.colorContorn.name())
            })
            sym.changeSymbolLayer(0, symbology)

            # Crear renderer y asignar a la capa
            renderer = QgsSingleSymbolRenderer(sym)

            # from qgis.core import QgsDataDefinedSizeLegend
            # lgd = QgsDataDefinedSizeLegend()
            # lgd.setTitle('Titulo')
            # lgd.setClasses([
            #     QgsDataDefinedSizeLegend.SizeClass(1000, '1.000'),
            #     QgsDataDefinedSizeLegend.SizeClass(3000, '3.000'),
            #     QgsDataDefinedSizeLegend.SizeClass(6000, '6.000')])
            # lgd.setLegendType(QgsDataDefinedSizeLegend.LegendCollapsed)
            # lgd.setVerticalAlignment(QgsDataDefinedSizeLegend.AlignBottom)
            # renderer.setDataDefinedSizeLegend(lgd)

            capa.setRenderer(renderer)
            capa.setOpacity(self.params.opacity)
            capa.setMapTipTemplate(self.params.calcTip())
            capa.triggerRepaint()

        return renderer