Kartenrand überlappungsfrei anordnen (#93) #95

Merged
Daniel merged 1 commits from bugfix/93-kartenrand-ueberlappung into unstable 2026-10-02 11:15:22 +00:00
Member

Was

Bei kleinen Verfahren oder großem Maßstab waren Legenden, Quellenangabe und Kartenschild zusammen höher als die Karte und überlappten sich. Beim Anlegen einer §-38-/§-41-Vorlage werden die Legenden jetzt bei Bedarf zwei- oder dreispaltig gesetzt (der Kartenrand wird dafür breiter); reicht auch das nicht, wird die Seite höher und Quellenangabe und Kartenschild rutschen nach unten. Größe und Lage der Karte bleiben gleich. Issue: #93.

Wie geprüft

  • Zuerst die Tests, die das Verhalten beschreiben (tests/test_print_kartenrand.py, rot ohne Modul), dann die Umsetzung; dabei einen Fall gefunden und korrigiert (ohne Legenden wurde unnötig dreispaltig).
  • python scripts/run_tests.py sn_basis --baseline: [sn_basis] GRÜN: 420/420 bestanden, 0 Fehlschläge, 0 Fehler, 0 übersprungen – unverändert gegenüber Baseline; 10 neue Testfälle.
  • python scripts/pruefe_umlaute.py Plugin_SN_Basis: 0 Funde.
  • QGIS-Test: QGIS 3.44.4 (Qt5), offscreen, 24 Fachlayer (12 im Kartenausschnitt, je 3 Kategorien), echte Basemap; automatisch geprüft: keine Überlappung zwischen Legende, Basemap-Legende, Quellenangabe, Kartenschild; alles auf der Seite; Karte unverändert bei 10/10 mm:
    • A, kleines Verfahren (Karte 160 × 80 mm, mit Basemap-Legende): dreispaltig, Seite 380 × 100 → 621 × 322 mm
    • B, große Karte (360 × 500 mm): unverändert, einspaltig
    • C, mittlere Karte (160 × 190 mm): dreispaltig, Seite 380 × 210 → 380 × 266 mm (nur höher)
    • Bild von A angesehen: Elemente sauber untereinander.
    • Nicht geprüft: QGIS 4 und die Bedienung im echten Designer.

Änderungen an Verträgen

Die Seitengröße aus print_logic ist für das Standardlayout nur noch eine Mindestgröße (Breite/Höhe können wachsen). Die Anordnung findet die Elemente über ihre IDs – dokumentiert in schnittstellen.md Abschnitt 12. Wrapper: QgsLayoutExporter mit Mock.

Übergabenotiz

Aufgabe: Plugin_SN_Basis #93 – Kartenrandelemente dürfen sich bei kleinen Verfahren nicht überlappen.
Stand: fertig.
Geändert:

  • modules/print_kartenrand.py (neu) – berechne_anordnung (reine Logik), ordne_kartenrand_an (Layout).
  • modules/print_layout.py – Aufruf am Ende von create_single_page_layout (Fehler nur als Warnung).
  • functions/qgiscore_wrapper.py – QgsLayoutExporter.
  • tests/test_print_kartenrand.py (neu), changelog.txt.
    Nachweis: siehe „Wie geprüft“.
    Entscheidungen/Annahmen:
  • Hauptlegende und Basemap-Legende bekommen dieselbe Spaltenzahl (kleinste, die passt; sonst die mit geringstem Platzbedarf).
  • Die Legenden werden vor dem Vermessen einmal mit 25 dpi gezeichnet, weil die gefilterte Höhe der Hauptlegende erst danach feststeht.
  • Nur beim Anlegen einer Vorlage; „Basemap-Legende aktualisieren“ an bestehenden Vorlagen ordnet nicht neu an (Nutzer könnten das Layout schon angepasst haben).
  • „Anlage zur Baufreigabe“ ist nicht betroffen (eigener Layoutaufbau).
    Offen / nächste Schritte: Basemap-Legende wird dreispaltig sehr breit (gleiche Spaltenbreiten, längster Text bestimmt) – ggf. ungleiche Spaltenbreiten; Test unter QGIS 4.
    Wissensbasis: Projektwissen-Branch docs/93-kartenrand: schnittstellen.md Abschnitt 12, fallstricke.md (ungefilterte Legendenhöhe vor dem ersten Zeichnen), modulkarte.md, STATUS.md Punkt 16, Testkatalog.
    Kontext für die nächste Sitzung: sn_basis/modules/print_kartenrand.py, print_layout._setup_layout_objects (Positionen der Elemente).

Checkliste

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

🤖 Generated with Claude Code

## Was Bei kleinen Verfahren oder großem Maßstab waren Legenden, Quellenangabe und Kartenschild zusammen höher als die Karte und überlappten sich. Beim Anlegen einer §-38-/§-41-Vorlage werden die Legenden jetzt bei Bedarf zwei- oder dreispaltig gesetzt (der Kartenrand wird dafür breiter); reicht auch das nicht, wird die Seite höher und Quellenangabe und Kartenschild rutschen nach unten. Größe und Lage der Karte bleiben gleich. Issue: #93. ## Wie geprüft - Zuerst die Tests, die das Verhalten beschreiben (`tests/test_print_kartenrand.py`, rot ohne Modul), dann die Umsetzung; dabei einen Fall gefunden und korrigiert (ohne Legenden wurde unnötig dreispaltig). - `python scripts/run_tests.py sn_basis --baseline`: `[sn_basis] GRÜN: 420/420 bestanden, 0 Fehlschläge, 0 Fehler, 0 übersprungen` – unverändert gegenüber Baseline; 10 neue Testfälle. - `python scripts/pruefe_umlaute.py Plugin_SN_Basis`: 0 Funde. - QGIS-Test: **QGIS 3.44.4 (Qt5), offscreen**, 24 Fachlayer (12 im Kartenausschnitt, je 3 Kategorien), echte Basemap; automatisch geprüft: keine Überlappung zwischen Legende, Basemap-Legende, Quellenangabe, Kartenschild; alles auf der Seite; Karte unverändert bei 10/10 mm: - A, kleines Verfahren (Karte 160 × 80 mm, mit Basemap-Legende): dreispaltig, Seite 380 × 100 → 621 × 322 mm - B, große Karte (360 × 500 mm): unverändert, einspaltig - C, mittlere Karte (160 × 190 mm): dreispaltig, Seite 380 × 210 → 380 × 266 mm (nur höher) - Bild von A angesehen: Elemente sauber untereinander. - **Nicht geprüft:** QGIS 4 und die Bedienung im echten Designer. ## Änderungen an Verträgen Die Seitengröße aus `print_logic` ist für das Standardlayout nur noch eine Mindestgröße (Breite/Höhe können wachsen). Die Anordnung findet die Elemente über ihre IDs – dokumentiert in `schnittstellen.md` Abschnitt 12. Wrapper: `QgsLayoutExporter` mit Mock. ## Übergabenotiz **Aufgabe:** Plugin_SN_Basis #93 – Kartenrandelemente dürfen sich bei kleinen Verfahren nicht überlappen. **Stand:** fertig. **Geändert:** - `modules/print_kartenrand.py` (neu) – `berechne_anordnung` (reine Logik), `ordne_kartenrand_an` (Layout). - `modules/print_layout.py` – Aufruf am Ende von `create_single_page_layout` (Fehler nur als Warnung). - `functions/qgiscore_wrapper.py` – `QgsLayoutExporter`. - `tests/test_print_kartenrand.py` (neu), `changelog.txt`. **Nachweis:** siehe „Wie geprüft“. **Entscheidungen/Annahmen:** - Hauptlegende und Basemap-Legende bekommen dieselbe Spaltenzahl (kleinste, die passt; sonst die mit geringstem Platzbedarf). - Die Legenden werden vor dem Vermessen einmal mit 25 dpi gezeichnet, weil die gefilterte Höhe der Hauptlegende erst danach feststeht. - Nur beim Anlegen einer Vorlage; „Basemap-Legende aktualisieren“ an bestehenden Vorlagen ordnet nicht neu an (Nutzer könnten das Layout schon angepasst haben). - „Anlage zur Baufreigabe“ ist nicht betroffen (eigener Layoutaufbau). **Offen / nächste Schritte:** Basemap-Legende wird dreispaltig sehr breit (gleiche Spaltenbreiten, längster Text bestimmt) – ggf. ungleiche Spaltenbreiten; Test unter QGIS 4. **Wissensbasis:** Projektwissen-Branch `docs/93-kartenrand`: `schnittstellen.md` Abschnitt 12, `fallstricke.md` (ungefilterte Legendenhöhe vor dem ersten Zeichnen), `modulkarte.md`, `STATUS.md` Punkt 16, Testkatalog. **Kontext für die nächste Sitzung:** `sn_basis/modules/print_kartenrand.py`, `print_layout._setup_layout_objects` (Positionen der Elemente). ## 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 11:14:50 +00:00
Im Standardlayout hingen Hauptlegende (oben), Quellenangabe und Kartenschild (unten) an der
Kartenhöhe; bei kleinen Verfahren waren sie zusammen höher als die Karte und überlappten.
Neues Modul print_kartenrand: Nach dem Aufbau der Vorlage (inkl. Basemap-Legende) werden die
Legenden einmal gezeichnet – die Hauptlegende filtert nach Karteninhalt, ihre Höhe steht erst
danach fest – und für 1–3 Spalten vermessen. Gewählt wird die kleinste passende Spaltenzahl
(Kartenrand wird dafür breiter); passt keine, die mit dem geringsten Platzbedarf, und die Seite
wird höher, Quellenangabe und Kartenschild rutschen nach unten. Karte bleibt in Größe und Lage.
Fehler bei der Anordnung verhindern die Vorlage nicht (Warnung). Wrapper: QgsLayoutExporter.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Daniel merged commit 463a546f79 into unstable 2026-10-02 11:15:22 +00:00
Daniel deleted branch bugfix/93-kartenrand-ueberlappung 2026-10-02 11:15:22 +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#95