コード例 #1
0
    def buildRenderer(self, xAttr, yAttr):
        color = QColor(randint(0, 255), randint(0, 255), randint(0, 255))
        symbol = QgsMarkerSymbolV2.createSimple({})
        symbol.deleteSymbolLayer(0)

        prop = QgsDataDefined()
        prop.setField("size")
        prop.setActive(True)

        symbol_layer = QgsSimpleMarkerSymbolLayerV2()
        symbol_layer.setColor(color)
        symbol_layer.setOutputUnit(QgsSymbolV2.MapUnit)
        symbol_layer.setDataDefinedProperty("size", prop)
        symbol.appendSymbolLayer(symbol_layer)

        symbol_layer = QgsVectorFieldSymbolLayer()
        symbol_layer.setColor(color)
        symbol_layer.VectorFieldType(QgsVectorFieldSymbolLayer.Cartesian)
        symbol_layer.AngleUnits(QgsVectorFieldSymbolLayer.Degrees)
        symbol_layer.setScale(2.0)
        symbol_layer.setXAttribute(xAttr)
        symbol_layer.setYAttribute(yAttr)
        subSymbol = self.subRenderer(color)
        symbol_layer.setSubSymbol(subSymbol)

        symbol.appendSymbolLayer(symbol_layer)

        renderer = QgsSingleSymbolRendererV2(symbol)

        return renderer
コード例 #2
0
    def testPolarRadians(self):
        # test rendering
        s = QgsMarkerSymbol()
        s.deleteSymbolLayer(0)

        field_marker = QgsVectorFieldSymbolLayer()
        field_marker.setXAttribute('x')
        field_marker.setYAttribute('y')
        field_marker.setVectorFieldType(QgsVectorFieldSymbolLayer.Polar)
        field_marker.setScale(1)
        field_marker.setAngleUnits(QgsVectorFieldSymbolLayer.Radians)

        field_marker.setSubSymbol(QgsLineSymbol.createSimple({'color': '#ff0000', 'width': '2'}))

        s.appendSymbolLayer(field_marker.clone())

        g = QgsGeometry.fromWkt('Point(5 4)')
        fields = QgsFields()
        fields.append(QgsField('x', QVariant.Double))
        fields.append(QgsField('y', QVariant.Double))
        f = QgsFeature(fields)
        f.setAttributes([6, 135])
        f.setGeometry(g)

        rendered_image = self.renderFeature(s, f)
        assert self.imageCheck('radians_polar', 'radians_polar', rendered_image)
コード例 #3
0
    def testMapRotation(self):
        # test rendering with map rotation
        s = QgsMarkerSymbol()
        s.deleteSymbolLayer(0)

        field_marker = QgsVectorFieldSymbolLayer()
        field_marker.setXAttribute('x')
        field_marker.setYAttribute('y')
        field_marker.setScale(4)

        field_marker.setSubSymbol(QgsLineSymbol.createSimple({'color': '#ff0000', 'width': '2'}))

        s.appendSymbolLayer(field_marker.clone())

        g = QgsGeometry.fromWkt('Point(5 4)')
        fields = QgsFields()
        fields.append(QgsField('x', QVariant.Double))
        fields.append(QgsField('y', QVariant.Double))
        f = QgsFeature(fields)
        f.setAttributes([2, 3])
        f.setGeometry(g)

        rendered_image = self.renderFeature(s, f, map_rotation=45)
        assert self.imageCheck('rotated_map', 'rotated_map', rendered_image)