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).
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:
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).
## 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)
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 unstable2026-10-02 11:15:22 +00:00
Daniel
deleted branch bugfix/93-kartenrand-ueberlappung2026-10-02 11:15:22 +00:00
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.
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
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.Änderungen an Verträgen
Die Seitengröße aus
print_logicist für das Standardlayout nur noch eine Mindestgröße (Breite/Höhe können wachsen). Die Anordnung findet die Elemente über ihre IDs – dokumentiert inschnittstellen.mdAbschnitt 12. Wrapper:QgsLayoutExportermit 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 voncreate_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:
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.mdAbschnitt 12,fallstricke.md(ungefilterte Legendenhöhe vor dem ersten Zeichnen),modulkarte.md,STATUS.mdPunkt 16, Testkatalog.Kontext für die nächste Sitzung:
sn_basis/modules/print_kartenrand.py,print_layout._setup_layout_objects(Positionen der Elemente).Checkliste
printchangelog.txtergänzt🤖 Generated with Claude Code