def testFontMarkerUnitDefault(self): symbol = QgsFontMarkerSymbolLayer('sans', ',', 10, QColor('black'), 45) symbol.setOffset(QPointF(5, 10)) dom, root = self.symbolToSld(symbol) # print("Font marker unit mm: " + dom.toString()) # Check the size has been rescaled self.assertStaticSize(root, '36') self.assertStaticRotation(root, '45') self.assertStaticDisplacement(root, 18, 36)
def testFontMarkerUnitPixel(self): symbol = QgsFontMarkerSymbolLayer('sans', ',', 10, QColor('black'), 45) symbol.setOffset(QPointF(5, 10)) symbol.setOutputUnit(QgsUnitTypes.RenderPixels) dom, root = self.symbolToSld(symbol) # print ("Font marker unit mm: " + dom.toString()) # Check the size has been rescaled self.assertStaticSize(root, '10') self.assertStaticRotation(root, '45') self.assertStaticDisplacement(root, 5, 10)
def append_CharacterMarkerSymbolLayer(symbol, layer): """ Appends a CharacterMarkerSymbolLayer to a symbol """ font_family = layer.font character = chr(layer.unicode) color = symbol_color_to_qcolor(layer.color) angle = convert_angle(layer.angle) out = QgsFontMarkerSymbolLayer(font_family, character, layer.size, color, angle) out.setSizeUnit(QgsUnitTypes.RenderPoints) out.setEnabled(layer.enabled) out.setLocked(layer.locked) # TODO ArcGIS does not have the same offset/rotation linkages as QGIS does! out.setOffset(QPointF(layer.x_offset, layer.y_offset)) out.setOffsetUnit(QgsUnitTypes.RenderPoints) symbol.appendSymbolLayer(out)
def append_CharacterMarkerSymbolLayer(symbol, layer): """ Appends a CharacterMarkerSymbolLayer to a symbol """ font_family = layer.font character = chr(layer.unicode) size = points_to_mm(layer.size) color = symbol_color_to_qcolor(layer.color) angle = 360 - layer.angle out = QgsFontMarkerSymbolLayer(font_family, character, size, color, angle) # TODO # out.setEnabled(layer.enabled) out.setLocked(layer.locked) out.setOffset( QPointF(points_to_mm(layer.x_offset), points_to_mm(layer.y_offset))) symbol.appendSymbolLayer(out)
def append_CharacterMarkerSymbolLayerAsFont(symbol, layer, context: Context): """ Appends a CharacterMarkerSymbolLayer to a symbol, using QGIS font marker symbols """ font_family = layer.font character = chr(layer.unicode) color = symbol_color_to_qcolor(layer.color) angle = convert_angle(layer.angle) out = QgsFontMarkerSymbolLayer(font_family, character, context.convert_size(layer.size), color, angle) out.setSizeUnit(context.units) out.setEnabled(layer.enabled) out.setLocked(layer.locked) out.setOffset( adjust_offset_for_rotation( QPointF(context.convert_size(layer.x_offset), -context.convert_size(layer.y_offset)), layer.angle)) out.setOffsetUnit(context.units) symbol.appendSymbolLayer(out)