fortschrittsanzeige grenzpunkte kommt zeitiger
This commit is contained in:
+26
-1
@@ -8,7 +8,7 @@ from sn_basis.functions import Qgis, QgsProject #QgsMessageLog
|
|||||||
from sn_basis.functions.qgisui_wrapper import QgsMapLayerComboBox
|
from sn_basis.functions.qgisui_wrapper import QgsMapLayerComboBox
|
||||||
from sn_basis.functions.qgiscore_wrapper import QgsMapLayerProxyModel
|
from sn_basis.functions.qgiscore_wrapper import QgsMapLayerProxyModel
|
||||||
from sn_basis.functions.verfahrensgebiet_manager import get_verfahrensgebiet_layer_id, set_verfahrensgebiet_layer_id
|
from sn_basis.functions.verfahrensgebiet_manager import get_verfahrensgebiet_layer_id, set_verfahrensgebiet_layer_id
|
||||||
from sn_basis.functions.dialog_wrapper import show_info_dialog
|
from sn_basis.functions.dialog_wrapper import show_info_dialog, create_progress_dialog
|
||||||
from sn_basis.modules.Pruefmanager import Pruefmanager
|
from sn_basis.modules.Pruefmanager import Pruefmanager
|
||||||
from sn_basis.modules.pruef_ergebnis import pruef_ergebnis
|
from sn_basis.modules.pruef_ergebnis import pruef_ergebnis
|
||||||
from qgis.utils import iface
|
from qgis.utils import iface
|
||||||
@@ -411,9 +411,20 @@ class WorkingTab(QWidget):
|
|||||||
Die Gemarkungsschlüssel werden per Spatial-Join aus der Geometrie des
|
Die Gemarkungsschlüssel werden per Spatial-Join aus der Geometrie des
|
||||||
aktuell gewählten Verfahrensgebiet-Layers abgeleitet.
|
aktuell gewählten Verfahrensgebiet-Layers abgeleitet.
|
||||||
"""
|
"""
|
||||||
|
# ------------------------------------------------------------------ #
|
||||||
|
# Schritt 0: Fortschrittsdialog sofort anzeigen #
|
||||||
|
# ------------------------------------------------------------------ #
|
||||||
|
# 4 Vorbereitungsschritte (Geometrie, Gemarkungen, Hits, Laden) –
|
||||||
|
# die genaue Schrittzahl wird in grenzpunkte_gemarkungsweise verfeinert.
|
||||||
|
prog = create_progress_dialog(
|
||||||
|
4, "Grenzpunkte aus ALKIS laden", "Verfahrensgebiet prüfen …"
|
||||||
|
)
|
||||||
|
prog.set_value(0)
|
||||||
|
|
||||||
# Verfahrensgebiet-Layer aus dem Dropdown holen
|
# Verfahrensgebiet-Layer aus dem Dropdown holen
|
||||||
vg_layer = self.verf_layer_combo.currentLayer()
|
vg_layer = self.verf_layer_combo.currentLayer()
|
||||||
if not vg_layer or not vg_layer.isValid():
|
if not vg_layer or not vg_layer.isValid():
|
||||||
|
prog.close()
|
||||||
warning(
|
warning(
|
||||||
"Grenzpunkte",
|
"Grenzpunkte",
|
||||||
"Kein Verfahrensgebiet-Layer gewählt. Bitte zuerst ein Verfahrensgebiet laden.",
|
"Kein Verfahrensgebiet-Layer gewählt. Bitte zuerst ein Verfahrensgebiet laden.",
|
||||||
@@ -424,6 +435,7 @@ class WorkingTab(QWidget):
|
|||||||
# Geometrie des ersten Features als Suchgeometrie
|
# Geometrie des ersten Features als Suchgeometrie
|
||||||
feats = list(vg_layer.getFeatures())
|
feats = list(vg_layer.getFeatures())
|
||||||
if not feats:
|
if not feats:
|
||||||
|
prog.close()
|
||||||
warning("Grenzpunkte", "Verfahrensgebiet-Layer enthält keine Features.", duration=5)
|
warning("Grenzpunkte", "Verfahrensgebiet-Layer enthält keine Features.", duration=5)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -432,14 +444,21 @@ class WorkingTab(QWidget):
|
|||||||
vg_geom = QgsGeometry.unaryUnion([f.geometry() for f in feats if f.hasGeometry()])
|
vg_geom = QgsGeometry.unaryUnion([f.geometry() for f in feats if f.hasGeometry()])
|
||||||
|
|
||||||
if not vg_geom or vg_geom.isEmpty():
|
if not vg_geom or vg_geom.isEmpty():
|
||||||
|
prog.close()
|
||||||
warning("Grenzpunkte", "Verfahrensgebiet-Layer hat keine Geometrie.", duration=5)
|
warning("Grenzpunkte", "Verfahrensgebiet-Layer hat keine Geometrie.", duration=5)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
prog.set_label("Gemarkungsschlüssel per WFS ermitteln …")
|
||||||
|
prog.set_value(1)
|
||||||
|
if prog.is_canceled():
|
||||||
|
return
|
||||||
|
|
||||||
# Gemarkungsschlüssel per Spatial-Join ermitteln (identisch zu VG-Workflow)
|
# Gemarkungsschlüssel per Spatial-Join ermitteln (identisch zu VG-Workflow)
|
||||||
schluessel_namen = gemarkung_schluessel_und_namen_von_vg_geometrie(vg_geom)
|
schluessel_namen = gemarkung_schluessel_und_namen_von_vg_geometrie(vg_geom)
|
||||||
schluessel_liste = [nr for nr, _ in schluessel_namen]
|
schluessel_liste = [nr for nr, _ in schluessel_namen]
|
||||||
|
|
||||||
if not schluessel_liste:
|
if not schluessel_liste:
|
||||||
|
prog.close()
|
||||||
warning(
|
warning(
|
||||||
"Grenzpunkte",
|
"Grenzpunkte",
|
||||||
"Keine Gemarkungen für das Verfahrensgebiet gefunden. "
|
"Keine Gemarkungen für das Verfahrensgebiet gefunden. "
|
||||||
@@ -448,7 +467,13 @@ class WorkingTab(QWidget):
|
|||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
prog.set_label(f"{len(schluessel_liste)} Gemarkung(en) gefunden – Grenzpunkte laden …")
|
||||||
|
prog.set_value(2)
|
||||||
|
if prog.is_canceled():
|
||||||
|
return
|
||||||
|
|
||||||
self._set_busy(self.btn_grenz_alkis, True, "Grenzpunkte aus ALKIS laden")
|
self._set_busy(self.btn_grenz_alkis, True, "Grenzpunkte aus ALKIS laden")
|
||||||
|
prog.close() # Vorbereitungs-Dialog schließen; grenzpunkte_gemarkungsweise öffnet eigenen
|
||||||
try:
|
try:
|
||||||
joined_layer = grenzpunkte_gemarkungsweise(self, schluessel_liste, vg_geom=vg_geom)
|
joined_layer = grenzpunkte_gemarkungsweise(self, schluessel_liste, vg_geom=vg_geom)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user