예제 #1
0
파일: qgis.py 프로젝트: robbriers/slyr
def append_CartographicLineSymbolLayer(symbol, layer: CartographicLineSymbolLayer):
    """
    Appends a CartographicLineSymbolLayer to a symbol
    """
    color = symbol_color_to_qcolor(layer.color)
    out = QgsSimpleLineSymbolLayer(color)
    out.setEnabled(layer.enabled)
    out.setLocked(layer.locked)
    out.setWidth(layer.width)
    out.setWidthUnit(QgsUnitTypes.RenderPoints)
    out.setPenJoinStyle(symbol_pen_to_qpenjoinstyle(layer.join))
    out.setPenCapStyle(symbol_pen_to_qpencapstyle(layer.cap))
    if layer.template is not None:
        apply_template_to_LineSymbolLayer_custom_dash(layer.template, out)

    # better matching of null stroke color to QGIS symbology
    if out.color().alpha() == 0:
        out.setPenStyle(Qt.NoPen)

    out.setOffset(layer.offset)
    out.setOffsetUnit(QgsUnitTypes.RenderPoints)

    symbol.appendSymbolLayer(out)

    if layer.decoration is not None:
        append_Decorations(symbol, layer.decoration)
예제 #2
0
def append_CartographicLineSymbolLayer(symbol, layer):
    """
    Appends a CartographicLineSymbolLayer to a symbol
    """
    color = symbol_color_to_qcolor(layer.color)
    out = QgsSimpleLineSymbolLayer(color)
    out.setEnabled(layer.enabled)
    out.setLocked(layer.locked)
    out.setWidth(points_to_mm(layer.width))
    out.setPenJoinStyle(symbol_pen_to_qpenjoinstyle(layer.join))
    out.setPenCapStyle(symbol_pen_to_qpencapstyle(layer.cap))
    if layer.pattern_parts:
        interval = layer.pattern_interval

        dash_vector = []
        for part in layer.pattern_parts:
            dash_vector.append(points_to_mm(part[0] * interval))
            dash_vector.append(points_to_mm(part[1] * interval))

        out.setCustomDashVector(dash_vector)
        out.setUseCustomDashPattern(True)

    # better matching of null stroke color to QGIS symbology
    if out.color().alpha() == 0:
        out.setPenStyle(Qt.NoPen)

    if layer.marker_positions or layer.marker:
        raise NotImplementedException(
            'Cartographic line start/end markers are not yet supported')

    # todo - change to new symbol layer if outline offset set
    symbol.appendSymbolLayer(out)
예제 #3
0
파일: qgis.py 프로젝트: zyxgis/slyr
def append_CartographicLineSymbolLayer(symbol,
                                       layer: CartographicLineSymbolLayer,
                                       context: Context):
    """
    Appends a CartographicLineSymbolLayer to a symbol
    """
    color = symbol_color_to_qcolor(layer.color)
    out = QgsSimpleLineSymbolLayer(color)
    out.setEnabled(layer.enabled)
    out.setLocked(layer.locked)
    out.setWidth(context.convert_size(max(
        0, layer.width)))  # sometimes lines have negative width?
    out.setWidthUnit(context.units)
    out.setPenJoinStyle(symbol_pen_to_qpenjoinstyle(layer.join))
    out.setPenCapStyle(symbol_pen_to_qpencapstyle(layer.cap))
    if layer.template is not None:
        apply_template_to_LineSymbolLayer_custom_dash(layer.template, out,
                                                      context)

    # better matching of null stroke color to QGIS symbology
    if out.color().alpha() == 0:
        out.setPenStyle(Qt.NoPen)

    out.setOffset(context.convert_size(layer.offset))
    out.setOffsetUnit(context.units)

    symbol.appendSymbolLayer(out)

    if layer.decoration is not None:
        append_Decorations(symbol, layer.decoration, context)
예제 #4
0
def SimpleLineSymbolLayer_to_QgsSimpleLineSymbolLayer(layer):
    """
    Converts a simple line symbol layer to a QgsSimpleLineSymbolLayer
    """
    out = QgsSimpleLineSymbolLayer(symbol_color_to_qcolor(layer.color),
                                   points_to_mm(layer.width),
                                   symbol_pen_to_qpenstyle(layer.line_type))

    # better mapping of "null" colors to QGIS symbology
    if out.color().alpha() == 0:
        out.setPenStyle(Qt.NoPen)
    return out
예제 #5
0
def append_SimpleLineSymbolLayer(symbol, layer):
    """
    Appends a SimpleLineSymbolLayer to a symbol
    """
    color = symbol_color_to_qcolor(layer.color)
    out = QgsSimpleLineSymbolLayer(color)
    out.setEnabled(layer.enabled)
    out.setLocked(layer.locked)
    out.setWidth(points_to_mm(layer.width))
    out.setPenStyle(symbol_pen_to_qpenstyle(layer.line_type))
    # out.setPenJoinStyle(symbol_pen_to_qpenjoinstyle(layer.join))
    # better matching of null stroke color to QGIS symbology
    if out.color().alpha() == 0:
        out.setPenStyle(Qt.NoPen)

    # todo - change to new symbol layer if outline offset set
    symbol.appendSymbolLayer(out)
예제 #6
0
파일: qgis.py 프로젝트: zyxgis/slyr
def append_SimpleLineSymbolLayer(symbol, layer, context: Context):
    """
    Appends a SimpleLineSymbolLayer to a symbol
    """
    color = symbol_color_to_qcolor(layer.color)
    out = QgsSimpleLineSymbolLayer(color)
    out.setEnabled(layer.enabled)
    out.setLocked(layer.locked)
    out.setWidth(context.convert_size(max(
        0, layer.width)))  # sometimes lines have negative width?
    out.setWidthUnit(context.units)
    out.setPenStyle(symbol_pen_to_qpenstyle(layer.line_type))

    # better matching of null stroke color to QGIS symbology
    if out.color().alpha() == 0:
        out.setPenStyle(Qt.NoPen)

    symbol.appendSymbolLayer(out)