try2 und try3 laden das Verfahrensgebiet mit Detailprüfung anstelle der Flurstücke vom wfs

This commit is contained in:
2026-08-26 16:08:01 +02:00
parent 2cb6193b98
commit 6bc5256d5f
4 changed files with 287 additions and 148 deletions
+41 -25
View File
@@ -254,6 +254,7 @@ def _vergleiche_flaechen(
def verfahrensgebiet_alkis_komplett(
tab_widget,
silent: bool = False,
) -> Tuple[Optional[object], Optional[object], Optional[object], LoadStatus]:
"""Vollständiger VG-Lade-Workflow: ALKIS-VG → Gemarkungen →
Flurstücke → Verschneidung → Flächenvergleich → opt. Umringsprüfung.
@@ -276,6 +277,15 @@ def verfahrensgebiet_alkis_komplett(
----------
tab_widget :
Eltern-Widget für alle Dialoge.
silent :
Automatisierter Modus ohne Nutzerentscheidungen: bestehender
VG-Layer wird ohne Nachfrage neu geladen, mehrdeutige
BROR-Kombinationen werden automatisch aufgelöst, bei
Flächenabweichung wird immer die Detailprüfung gestartet (nie „als
VG laden“, nie abbrechen), und die beiden rein informativen
Abschluss-Meldungen (Flächenvergleich-OK, Detailprüfung
abgeschlossen) werden unterdrückt. Die Fortschrittsdialoge bleiben
sichtbar.
Returns
-------
@@ -305,7 +315,7 @@ def verfahrensgebiet_alkis_komplett(
if progress.is_canceled():
return None, None, None, LoadStatus.NONE
alkis_vg_layer, vg_status, _ = verfahrensgebiet_alkis(tab_widget)
alkis_vg_layer, vg_status, _ = verfahrensgebiet_alkis(tab_widget, silent=silent)
progress.raise_to_front()
if vg_status == LoadStatus.NONE or not alkis_vg_layer:
@@ -426,29 +436,34 @@ def verfahrensgebiet_alkis_komplett(
if stimmt_ueberein:
progress.set_value(7)
progress.close()
show_info_dialog(
"Flächenvergleich",
"Verfahrensgebiet mit erwarteter Geometrie erzeugt",
parent=tab_widget,
)
if not silent:
show_info_dialog(
"Flächenvergleich",
"Verfahrensgebiet mit erwarteter Geometrie erzeugt",
parent=tab_widget,
)
abgeschlossen = True
return enriched_layer, flst_layer, alkis_vg_layer, vg_status
# ------------------------------------------------------------------
# Flächenabweichung → 3-Optionen-Dialog
# Flächenabweichung → 3-Optionen-Dialog (im silent-Modus: immer
# Detailprüfung, ohne Nachfrage)
# ------------------------------------------------------------------
progress.close()
diff = abs(bror_flaeche - vg_flaeche)
entscheidung = ask_detailpruefung_oder_vg_laden(
tab_widget,
"Abweichung erkannt",
f"Abweichung zwischen BauRaumOderBodenordnungsrecht-Objekt und abgeleitetem "
f"Verfahrensgebiet erkannt.\n\n"
f"As: {bror_flaeche:.2f} m²\n"
f"Verfahrensgebiet: {vg_flaeche:.2f} m²\n"
f"Differenz: {diff:.2f} m²\n\n"
f"Wie möchten Sie fortfahren?",
)
if silent:
entscheidung = "detailpruefung"
else:
entscheidung = ask_detailpruefung_oder_vg_laden(
tab_widget,
"Abweichung erkannt",
f"Abweichung zwischen BauRaumOderBodenordnungsrecht-Objekt und abgeleitetem "
f"Verfahrensgebiet erkannt.\n\n"
f"As: {bror_flaeche:.2f} m²\n"
f"Verfahrensgebiet: {vg_flaeche:.2f} m²\n"
f"Differenz: {diff:.2f} m²\n\n"
f"Wie möchten Sie fortfahren?",
)
if entscheidung == "abbrechen":
abgeschlossen = True
@@ -550,14 +565,15 @@ def verfahrensgebiet_alkis_komplett(
if ergebnis_layer and ergebnis_layer.isValid():
project.addMapLayer(ergebnis_layer)
show_info_dialog(
"Detailprüfung abgeschlossen",
f"Knickpunkte geprüft: {n_knick}\n"
f" Identisch (grün): {identisch}\n"
f" Kein PunktortTA (rot): {kein_pta}\n"
f" Fehlende Knickpunkte (orange): {fehlender_knick}",
parent=tab_widget,
)
if not silent:
show_info_dialog(
"Detailprüfung abgeschlossen",
f"Knickpunkte geprüft: {n_knick}\n"
f" Identisch (grün): {identisch}\n"
f" Kein PunktortTA (rot): {kein_pta}\n"
f" Fehlende Knickpunkte (orange): {fehlender_knick}",
parent=tab_widget,
)
abgeschlossen = True
return enriched_layer, flst_layer, alkis_vg_layer, vg_status