Basemap: Punktlinien in Karte und Legende sichtbar machen (#90) #91

Merged
Daniel merged 1 commits from bugfix/90-basemap-punktlinien into unstable 2026-10-02 10:38:32 +00:00
Member

Was

basemap.de zeichnet Punktlinien mit Strichlänge 0 und runder Kappe; Qt zeichnet Striche der Länge 0 nicht, deshalb fehlten Baumreihen, Hecken, Durchlässe, Seilbahnen u. a. (12 Styles) in Karte und Basemap-Legende. Neuer Knopf „Punktlinien korrigieren“ im Basemap-Bereich des Druck-Tabs ersetzt die Strichlänge 0 durch 0,01 – im festen Strichmuster und im zoomabhängigen Ausdruck. Issue: #90.

Wie geprüft

  • Zuerst der Test, der den Fehler zeigt (tests/test_basemap_stilkorrektur.py, rot ohne Modul), dann die Korrektur.
  • python scripts/run_tests.py sn_basis --baseline: [sn_basis] GRÜN: 404/404 bestanden, 0 Fehlschläge, 0 Fehler, 0 übersprungen – unverändert gegenüber Baseline; 8 neue Testfälle.
  • python scripts/pruefe_umlaute.py Plugin_SN_Basis: 0 Funde.
  • QGIS-Test: QGIS 3.44.4 (Qt5), offscreen, echte basemap.de-Kacheln, nur Baumreihe/Durchlass eingeschaltet, Beschriftung aus:
    • vorher: Karte 0 sichtbare Pixel, Legendensymbole Baumreihe/Durchlass 0 Pixel
    • korrigiere_punktlinien: 12 Styles korrigiert, zweiter Lauf 0
    • nachher: Karte 311 Pixel (Punkte sichtbar), Legendensymbole 230 / 84 Pixel
    • Korrektur als Stilvorlage gespeichert → frischer Layer (0) → Vorlage geladen → Karte sichtbar, keine weitere Korrektur nötig
    • Knopf im Basemap-Bereich vorhanden und bei vorhandenem Basemap-Layer aktiv
    • Nicht geprüft: QGIS 4 (Qt6) – ob Qt6 Striche der Länge 0 zeichnet, ist offen.

Änderungen an Verträgen

keine (neues Modul modules/basemap_stilkorrektur.py; Wrapper-Konstante PROPERTY_CUSTOM_DASH, QgsProperty.fromExpression im Mock).

Übergabenotiz

Aufgabe: Plugin_SN_Basis #90 – Punktlinien der Basemap in Karte und Legende sichtbar machen.
Stand: fertig.
Geändert:

  • modules/basemap_stilkorrektur.py (neu) – korrigiere_punktlinien(layer), korrigiere_muster, korrigiere_ausdruck.
  • ui/widgets/basemap_bereich.py – Knopf „Punktlinien korrigieren“ mit Meldung der Anzahl.
  • functions/qgiscore_wrapper.py – PROPERTY_CUSTOM_DASH, Mock QgsProperty.fromExpression.
  • tests/test_basemap_stilkorrektur.py (neu), tests/test_basemap_anbindung.py (2 Tests), changelog.txt.
    Nachweis: siehe „Wie geprüft“.
    Entscheidungen/Annahmen: Korrektur nur auf Knopfdruck (nicht automatisch), am Layer und nicht nur in der Legende – sonst zeigte die Legende Punkte, die in der Karte fehlen. Ersatzwert 0,01 (in Vielfachen der Linienbreite) ergibt mit runder Kappe runde Punkte.
    Offen / nächste Schritte: 1. Test unter QGIS 4. 2. Optional Fehlerbericht an QGIS (Mapbox-Style-Konverter sollte Strichlänge 0 abfangen). 3. Empfehlung an die Nutzer: einmal korrigieren und als Standard-Stilvorlage speichern.
    Wissensbasis: Projektwissen-Branch docs/90-basemap-punktlinien (eigener PR), Commit „Basemap-Punktlinien (Basis #90)“: fallstricke.md (Strichlänge 0), Konzept 10 Abschnitt 10, modulkarte.md, STATUS.md, Testkatalog.
    Kontext für die nächste Sitzung: sn_basis/modules/basemap_stilkorrektur.py, sn_basis/ui/widgets/basemap_bereich.py.

Checkliste

  • Nur Änderungen zum Issue
  • Keine direkten Qt/QGIS-Importe, keine Debug-print
  • changelog.txt ergänzt
  • Wissensbasis nachgezogen

🤖 Generated with Claude Code

## Was basemap.de zeichnet Punktlinien mit Strichlänge 0 und runder Kappe; Qt zeichnet Striche der Länge 0 nicht, deshalb fehlten Baumreihen, Hecken, Durchlässe, Seilbahnen u. a. (12 Styles) in Karte und Basemap-Legende. Neuer Knopf „Punktlinien korrigieren“ im Basemap-Bereich des Druck-Tabs ersetzt die Strichlänge 0 durch 0,01 – im festen Strichmuster und im zoomabhängigen Ausdruck. Issue: #90. ## Wie geprüft - Zuerst der Test, der den Fehler zeigt (`tests/test_basemap_stilkorrektur.py`, rot ohne Modul), dann die Korrektur. - `python scripts/run_tests.py sn_basis --baseline`: `[sn_basis] GRÜN: 404/404 bestanden, 0 Fehlschläge, 0 Fehler, 0 übersprungen` – unverändert gegenüber Baseline; 8 neue Testfälle. - `python scripts/pruefe_umlaute.py Plugin_SN_Basis`: 0 Funde. - QGIS-Test: **QGIS 3.44.4 (Qt5), offscreen**, echte basemap.de-Kacheln, nur Baumreihe/Durchlass eingeschaltet, Beschriftung aus: - vorher: Karte 0 sichtbare Pixel, Legendensymbole Baumreihe/Durchlass 0 Pixel - `korrigiere_punktlinien`: 12 Styles korrigiert, zweiter Lauf 0 - nachher: Karte 311 Pixel (Punkte sichtbar), Legendensymbole 230 / 84 Pixel - Korrektur als Stilvorlage gespeichert → frischer Layer (0) → Vorlage geladen → Karte sichtbar, keine weitere Korrektur nötig - Knopf im Basemap-Bereich vorhanden und bei vorhandenem Basemap-Layer aktiv - **Nicht geprüft:** QGIS 4 (Qt6) – ob Qt6 Striche der Länge 0 zeichnet, ist offen. ## Änderungen an Verträgen keine (neues Modul `modules/basemap_stilkorrektur.py`; Wrapper-Konstante `PROPERTY_CUSTOM_DASH`, `QgsProperty.fromExpression` im Mock). ## Übergabenotiz **Aufgabe:** Plugin_SN_Basis #90 – Punktlinien der Basemap in Karte und Legende sichtbar machen. **Stand:** fertig. **Geändert:** - `modules/basemap_stilkorrektur.py` (neu) – `korrigiere_punktlinien(layer)`, `korrigiere_muster`, `korrigiere_ausdruck`. - `ui/widgets/basemap_bereich.py` – Knopf „Punktlinien korrigieren“ mit Meldung der Anzahl. - `functions/qgiscore_wrapper.py` – `PROPERTY_CUSTOM_DASH`, Mock `QgsProperty.fromExpression`. - `tests/test_basemap_stilkorrektur.py` (neu), `tests/test_basemap_anbindung.py` (2 Tests), `changelog.txt`. **Nachweis:** siehe „Wie geprüft“. **Entscheidungen/Annahmen:** Korrektur nur auf Knopfdruck (nicht automatisch), am Layer und nicht nur in der Legende – sonst zeigte die Legende Punkte, die in der Karte fehlen. Ersatzwert 0,01 (in Vielfachen der Linienbreite) ergibt mit runder Kappe runde Punkte. **Offen / nächste Schritte:** 1. Test unter QGIS 4. 2. Optional Fehlerbericht an QGIS (Mapbox-Style-Konverter sollte Strichlänge 0 abfangen). 3. Empfehlung an die Nutzer: einmal korrigieren und als Standard-Stilvorlage speichern. **Wissensbasis:** Projektwissen-Branch `docs/90-basemap-punktlinien` (eigener PR), Commit „Basemap-Punktlinien (Basis #90)“: `fallstricke.md` (Strichlänge 0), Konzept 10 Abschnitt 10, `modulkarte.md`, `STATUS.md`, Testkatalog. **Kontext für die nächste Sitzung:** `sn_basis/modules/basemap_stilkorrektur.py`, `sn_basis/ui/widgets/basemap_bereich.py`. ## Checkliste - [x] Nur Änderungen zum Issue - [x] Keine direkten Qt/QGIS-Importe, keine Debug-`print` - [x] `changelog.txt` ergänzt - [x] Wissensbasis nachgezogen 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Daniel added 1 commit 2026-10-02 10:38:26 +00:00
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>
Daniel merged commit 1dc19d1324 into unstable 2026-10-02 10:38:32 +00:00
Daniel deleted branch bugfix/90-basemap-punktlinien 2026-10-02 10:38:32 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: AG_QGIS/Plugin_SN_Basis#91