Basemap: Punktlinien in Karte und Legende sichtbar machen (#90)
basemap.de zeichnet Punktlinien mit Strichlänge 0 und runder Linienkappe (MapLibre-Muster); QGIS übernimmt das beim Import 1:1, Qt zeichnet Striche der Länge 0 aber nicht. Baumreihen, Hecken, Durchlässe, Seilbahnen u. a. (12 Styles) fehlten dadurch in Karte und Legende. Neues Modul basemap_stilkorrektur: korrigiere_punktlinien(layer) ersetzt Strichlänge 0 durch 0,01 im festen Strichmuster und in den array(...)-Mustern des zoomabhängigen Ausdrucks; idempotent, andere Styles unverändert. Ausgelöst per Knopf „Punktlinien korrigieren“ im Basemap-Bereich, sicherbar als Stilvorlage. Wrapper: PROPERTY_CUSTOM_DASH, QgsProperty.fromExpression im Mock. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -896,6 +896,7 @@ QgsLayoutUtils: Type[Any]
|
||||
SELECT_BEHAVIOR_SET: Any = None
|
||||
SELECT_RELATION_INTERSECT: Any = None
|
||||
PROPERTY_TYPE_EXPRESSION: Any = None
|
||||
PROPERTY_CUSTOM_DASH: Any = None
|
||||
LEGEND_STYLE_HIDDEN: Any = None
|
||||
LEGEND_STYLE_SUBGROUP: Any = None
|
||||
STYLE_CATEGORIES_SYMBOLOGIE_BESCHRIFTUNG: Any = None
|
||||
@@ -919,6 +920,7 @@ try:
|
||||
QgsSymbolLayerUtils as _QgsSymbolLayerUtils,
|
||||
QgsLayoutMeasurement as _QgsLayoutMeasurement,
|
||||
QgsLayoutUtils as _QgsLayoutUtils,
|
||||
QgsSymbolLayer as _QgsSymbolLayer,
|
||||
Qgis as _QgisVT,
|
||||
)
|
||||
|
||||
@@ -944,6 +946,12 @@ try:
|
||||
PROPERTY_TYPE_EXPRESSION = getattr(getattr(_QgsProperty, "Type", None), "ExpressionBasedProperty", None)
|
||||
if PROPERTY_TYPE_EXPRESSION is None:
|
||||
PROPERTY_TYPE_EXPRESSION = getattr(_QgsProperty, "ExpressionBasedProperty", None)
|
||||
# Schlüssel der datendefinierten Eigenschaft „eigenes Strichmuster“ als int (Basis #90);
|
||||
# propertyKeys() liefert ints, das Enum ist je nach QGIS-Version gescoped oder nicht.
|
||||
_strichmuster = getattr(getattr(_QgsSymbolLayer, "Property", None), "CustomDash", None)
|
||||
if _strichmuster is None:
|
||||
_strichmuster = getattr(_QgsSymbolLayer, "PropertyCustomDash", None)
|
||||
PROPERTY_CUSTOM_DASH = int(getattr(_strichmuster, "value", _strichmuster))
|
||||
LEGEND_STYLE_HIDDEN = getattr(getattr(_QgsLegendStyle, "Style", _QgsLegendStyle), "Hidden", None)
|
||||
LEGEND_STYLE_SUBGROUP = getattr(getattr(_QgsLegendStyle, "Style", _QgsLegendStyle), "Subgroup", None)
|
||||
_kategorie = getattr(_QgsMapLayer, "StyleCategory", _QgsMapLayer)
|
||||
@@ -1018,6 +1026,15 @@ except Exception:
|
||||
def fromValue(value: Any) -> "_MockQgsProperty":
|
||||
return _MockQgsProperty(value)
|
||||
|
||||
@staticmethod
|
||||
def fromExpression(expression: str, is_active: bool = True) -> "_MockQgsProperty":
|
||||
eigenschaft = _MockQgsProperty()
|
||||
eigenschaft._ausdruck = expression
|
||||
return eigenschaft
|
||||
|
||||
def expressionString(self) -> str:
|
||||
return getattr(self, "_ausdruck", "")
|
||||
|
||||
class _MockQgsRendererCategory:
|
||||
def __init__(self, value: Any = None, symbol: Any = None, label: str = ""):
|
||||
self._value, self._symbol, self._label = value, symbol, label
|
||||
@@ -1123,6 +1140,7 @@ except Exception:
|
||||
SELECT_BEHAVIOR_SET = 0
|
||||
SELECT_RELATION_INTERSECT = 0
|
||||
PROPERTY_TYPE_EXPRESSION = 2
|
||||
PROPERTY_CUSTOM_DASH = 36
|
||||
LEGEND_STYLE_HIDDEN = _MockQgsLegendStyle.Hidden
|
||||
LEGEND_STYLE_SUBGROUP = _MockQgsLegendStyle.Subgroup
|
||||
STYLE_CATEGORIES_SYMBOLOGIE_BESCHRIFTUNG = 3
|
||||
|
||||
Reference in New Issue
Block a user