Baumreihen, Hecken, Durchlässe und die übrigen punktierten Basemap-Objekte erscheinen in der Karte und in der Basemap-Legende als Punktlinie, nachdem der Nutzer im Basemap-Bereich des Druck-Tabs „Punktlinien korrigieren“ gewählt hat.
Betroffen
Plugin: sn_basis
Module/Dateien (falls bekannt): modules/basemap_legende_layout.py oder neues kleines Modul für die Stilkorrektur, ui/widgets/basemap_bereich.py (Knopf), ggf. functions/qgiscore_wrapper.py
Berührt Schnittstellen (docs/architektur/schnittstellen.md)? nein (verändert nur die Darstellung des Basemap-Layers im Projekt; ggf. neue öffentliche Funktion in basemap_* dokumentieren)
Fachlicher Hintergrund
Gefunden bei #88. basemap.de zeichnet Punktlinien wie in MapLibre üblich: Strichmuster mit Strichlänge 0 und runder Linienkappe (line-dasharray: [0, 2], line-cap: round). QGIS übernimmt das beim Import der Style-JSON 1:1 als eigenes Strichmuster 0;…. Qt zeichnet Striche der Länge 0 nicht – auch nicht als Punkt. Die Objekte fehlen dadurch in der Karte und in der Legende.
Nachgewiesen in QGIS 3.44.4 / PyQt 5.15 (offscreen, echte Kacheln, Testgebiet bei Meißen, nur die betroffenen Styles eingeschaltet, Beschriftung aus):
Lösungsansatz (im Spike bestätigt): In jedem Renderer-Style des Basemap-Layers, dessen einfache Linie ein eigenes Strichmuster hat, Strichlängen 0 durch einen kleinen Wert (0,01) ersetzen – im festen Muster (customDashVector) und im zoomabhängigen Ausdruck der Eigenschaft „customDash“ (array(0, → array(0.01,). Die Korrektur nur in der Legende vorzunehmen wäre irreführend (Legende zeigt Punkte, Karte nicht) und ist deshalb verworfen.
Ausgelöst wird die Korrektur bewusst per Knopf im Basemap-Bereich, nicht automatisch. Danach lässt sie sich mit „Speichern unter …“ als Stilvorlage sichern und in anderen Projekten wieder laden.
Abnahmekriterien
Knopf „Punktlinien korrigieren“ im Basemap-Bereich; ohne Basemap-Layer deaktiviert bzw. mit Hinweis.
Nach dem Klick sind alle Styles mit Strichlänge 0 korrigiert (festes Muster und Ausdruck); andere Styles bleiben unverändert. Meldung mit der Anzahl korrigierter Styles.
Mehrfaches Ausführen ist unschädlich (zweiter Lauf korrigiert 0 Styles).
Baumreihe und Durchlass erscheinen danach in der Karte und – nach „Basemap-Legende aktualisieren“ – mit sichtbarem Symbol in der Basemap-Legende.
Eine danach gespeicherte Stilvorlage enthält die Korrektur.
Mock-Test vorhanden (Korrektur von Muster und Ausdruck, Idempotenz, unbeteiligte Styles unverändert), run_tests.py --baseline ohne NEU ROT.
QGIS-Test: nötig – Karte und Legende in QGIS 3.44; QGIS 4 (Qt6) prüfen, ob das Problem dort auch besteht.
Nicht Teil dieses Issues
Automatische Korrektur beim Laden des Layers oder beim Erstellen der Vorlage.
Andere Darstellungsprobleme der Basemap-Legende (z. B. weiße Fläche „Platz“ ohne Rand).
Fehlerbericht an QGIS (der Mapbox-Style-Konverter sollte Strichlänge 0 selbst abfangen) – separat, von Hand.
Änderungen am Legendenkatalog.
## Ziel
Baumreihen, Hecken, Durchlässe und die übrigen punktierten Basemap-Objekte erscheinen in der Karte und in der Basemap-Legende als Punktlinie, nachdem der Nutzer im Basemap-Bereich des Druck-Tabs „Punktlinien korrigieren“ gewählt hat.
## Betroffen
Plugin: sn_basis
Module/Dateien (falls bekannt): `modules/basemap_legende_layout.py` oder neues kleines Modul für die Stilkorrektur, `ui/widgets/basemap_bereich.py` (Knopf), ggf. `functions/qgiscore_wrapper.py`
Berührt Schnittstellen (`docs/architektur/schnittstellen.md`)? nein (verändert nur die Darstellung des Basemap-Layers im Projekt; ggf. neue öffentliche Funktion in `basemap_*` dokumentieren)
## Fachlicher Hintergrund
Gefunden bei #88. basemap.de zeichnet Punktlinien wie in MapLibre üblich: Strichmuster mit **Strichlänge 0** und runder Linienkappe (`line-dasharray: [0, 2]`, `line-cap: round`). QGIS übernimmt das beim Import der Style-JSON 1:1 als eigenes Strichmuster `0;…`. **Qt zeichnet Striche der Länge 0 nicht** – auch nicht als Punkt. Die Objekte fehlen dadurch in der Karte *und* in der Legende.
Nachgewiesen in QGIS 3.44.4 / PyQt 5.15 (offscreen, echte Kacheln, Testgebiet bei Meißen, nur die betroffenen Styles eingeschaltet, Beschriftung aus):
| Test | sichtbare Pixel |
|---|---|
| reines Qt, `RoundCap`, Muster `[0, 3]` | 0 |
| Kartenrendering Original, 1:5000 / 1:10 000 | 0 / 0 |
| Kartenrendering mit Strichlänge 0,01 statt 0 | Punkte sichtbar |
Betroffene Styles (12): `VegetationsL_Baumreihe`, `VegetationsL_Baumreihe_Fuellung`, `VegetationsL_Hecke`, `Gewaesser_L_Durchlass_Dueker`, `BauwerkL_Wellenbrecher_Buhne_Lahnung`, `BauwerkF_Wellenbrecher_Buhne_Lahnung`, `VerkehrsL_SeilbahnSchwebebahn_Punkte`, `VerkehrsL_Materialseilbahn_Punkte`, `VerkehrsL_Sessellift_Enden`, `VerkehrsL_Ski_Schlepplift_Enden`, `HistorischL_Wasserleitung_Punkte`, `VersorgungsL_Transportanlage_Foerderband_Rohrleitung_Kreise`.
Lösungsansatz (im Spike bestätigt): In jedem Renderer-Style des Basemap-Layers, dessen einfache Linie ein eigenes Strichmuster hat, Strichlängen 0 durch einen kleinen Wert (0,01) ersetzen – im festen Muster (`customDashVector`) **und** im zoomabhängigen Ausdruck der Eigenschaft „customDash“ (`array(0,` → `array(0.01,`). Die Korrektur nur in der Legende vorzunehmen wäre irreführend (Legende zeigt Punkte, Karte nicht) und ist deshalb verworfen.
Ausgelöst wird die Korrektur bewusst per Knopf im Basemap-Bereich, nicht automatisch. Danach lässt sie sich mit „Speichern unter …“ als Stilvorlage sichern und in anderen Projekten wieder laden.
## Abnahmekriterien
- [ ] Knopf „Punktlinien korrigieren“ im Basemap-Bereich; ohne Basemap-Layer deaktiviert bzw. mit Hinweis.
- [ ] Nach dem Klick sind alle Styles mit Strichlänge 0 korrigiert (festes Muster und Ausdruck); andere Styles bleiben unverändert. Meldung mit der Anzahl korrigierter Styles.
- [ ] Mehrfaches Ausführen ist unschädlich (zweiter Lauf korrigiert 0 Styles).
- [ ] Baumreihe und Durchlass erscheinen danach in der Karte und – nach „Basemap-Legende aktualisieren“ – mit sichtbarem Symbol in der Basemap-Legende.
- [ ] Eine danach gespeicherte Stilvorlage enthält die Korrektur.
- [ ] Mock-Test vorhanden (Korrektur von Muster und Ausdruck, Idempotenz, unbeteiligte Styles unverändert), `run_tests.py --baseline` ohne NEU ROT.
- [ ] QGIS-Test: nötig – Karte und Legende in QGIS 3.44; QGIS 4 (Qt6) prüfen, ob das Problem dort auch besteht.
## Nicht Teil dieses Issues
- Automatische Korrektur beim Laden des Layers oder beim Erstellen der Vorlage.
- Andere Darstellungsprobleme der Basemap-Legende (z. B. weiße Fläche „Platz“ ohne Rand).
- Fehlerbericht an QGIS (der Mapbox-Style-Konverter sollte Strichlänge 0 selbst abfangen) – separat, von Hand.
- Änderungen am Legendenkatalog.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ziel
Baumreihen, Hecken, Durchlässe und die übrigen punktierten Basemap-Objekte erscheinen in der Karte und in der Basemap-Legende als Punktlinie, nachdem der Nutzer im Basemap-Bereich des Druck-Tabs „Punktlinien korrigieren“ gewählt hat.
Betroffen
Plugin: sn_basis
Module/Dateien (falls bekannt):
modules/basemap_legende_layout.pyoder neues kleines Modul für die Stilkorrektur,ui/widgets/basemap_bereich.py(Knopf), ggf.functions/qgiscore_wrapper.pyBerührt Schnittstellen (
docs/architektur/schnittstellen.md)? nein (verändert nur die Darstellung des Basemap-Layers im Projekt; ggf. neue öffentliche Funktion inbasemap_*dokumentieren)Fachlicher Hintergrund
Gefunden bei #88. basemap.de zeichnet Punktlinien wie in MapLibre üblich: Strichmuster mit Strichlänge 0 und runder Linienkappe (
line-dasharray: [0, 2],line-cap: round). QGIS übernimmt das beim Import der Style-JSON 1:1 als eigenes Strichmuster0;…. Qt zeichnet Striche der Länge 0 nicht – auch nicht als Punkt. Die Objekte fehlen dadurch in der Karte und in der Legende.Nachgewiesen in QGIS 3.44.4 / PyQt 5.15 (offscreen, echte Kacheln, Testgebiet bei Meißen, nur die betroffenen Styles eingeschaltet, Beschriftung aus):
RoundCap, Muster[0, 3]Betroffene Styles (12):
VegetationsL_Baumreihe,VegetationsL_Baumreihe_Fuellung,VegetationsL_Hecke,Gewaesser_L_Durchlass_Dueker,BauwerkL_Wellenbrecher_Buhne_Lahnung,BauwerkF_Wellenbrecher_Buhne_Lahnung,VerkehrsL_SeilbahnSchwebebahn_Punkte,VerkehrsL_Materialseilbahn_Punkte,VerkehrsL_Sessellift_Enden,VerkehrsL_Ski_Schlepplift_Enden,HistorischL_Wasserleitung_Punkte,VersorgungsL_Transportanlage_Foerderband_Rohrleitung_Kreise.Lösungsansatz (im Spike bestätigt): In jedem Renderer-Style des Basemap-Layers, dessen einfache Linie ein eigenes Strichmuster hat, Strichlängen 0 durch einen kleinen Wert (0,01) ersetzen – im festen Muster (
customDashVector) und im zoomabhängigen Ausdruck der Eigenschaft „customDash“ (array(0,→array(0.01,). Die Korrektur nur in der Legende vorzunehmen wäre irreführend (Legende zeigt Punkte, Karte nicht) und ist deshalb verworfen.Ausgelöst wird die Korrektur bewusst per Knopf im Basemap-Bereich, nicht automatisch. Danach lässt sie sich mit „Speichern unter …“ als Stilvorlage sichern und in anderen Projekten wieder laden.
Abnahmekriterien
run_tests.py --baselineohne NEU ROT.Nicht Teil dieses Issues