Druckbereich und Layoutkarte im KBS des Verfahrensgebiets (#99)

Bei anderem Projekt-KBS als dem des Verfahrensgebiets entstand das
Drucklayout mit leerer Karte und falschen Koordinaten: die Ausdehnung kam
im Layer-KBS, die Layoutkarte rechnete im Projekt-KBS. Die Hauptkarte
bekommt jetzt das KBS des Verfahrensgebiet-Layers, alle Druckbereiche
werden dorthin umgerechnet, ebenso das gezeichnete Druckrechteck.

Neue Wrapper-Funktionen transformiere_rechteck und zoom_auf_layer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-05 22:15:34 +02:00
co-authored by Claude Opus 5.5
parent 3e1431642b
commit f58d814313
7 changed files with 363 additions and 8 deletions
+10
View File
@@ -982,6 +982,7 @@ class PrintLayout:
thema: str = "",
fit_extent_to_map: bool = True,
basemap_legende: bool = False,
crs: Any = None,
) -> Any:
layout_manager = self.project.layoutManager()
existing_layout = layout_manager.layoutByName(name)
@@ -1011,6 +1012,15 @@ class PrintLayout:
map_height_mm,
)
if crs is not None:
# Vor setExtent: die Ausdehnung steht im Druck-KBS, nicht im Projekt-KBS (Basis #99)
set_crs = getattr(hauptkarte, "setCrs", None)
if callable(set_crs):
try:
set_crs(crs)
except Exception:
pass
fitted_extent = extent
if fit_extent_to_map:
fitted_extent = self._fit_extent_to_map_item(extent, map_width_mm, map_height_mm)