shape Verfahrensgebiet ergänzt
This commit is contained in:
+60
-2
@@ -8,7 +8,8 @@ from sn_basis.functions import Qgis, QgsProject #QgsMessageLog
|
||||
from sn_basis.functions.qgisui_wrapper import QgsMapLayerComboBox
|
||||
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.dialog_wrapper import show_info_dialog, create_progress_dialog
|
||||
from sn_basis.functions.dialog_wrapper import show_info_dialog, create_progress_dialog, ask_yes_no
|
||||
from sn_basis.functions.variable_wrapper import get_variable
|
||||
from sn_basis.modules.Pruefmanager import Pruefmanager
|
||||
from sn_basis.modules.pruef_ergebnis import pruef_ergebnis
|
||||
from qgis.utils import iface
|
||||
@@ -21,6 +22,7 @@ from sn_verfahrensgebiet.functions.flurstueck_alkis import (
|
||||
FLST_LAYER_NAME,
|
||||
)
|
||||
from sn_verfahrensgebiet.functions.verfahrensgebiet_alkis_komplett import verfahrensgebiet_alkis_komplett
|
||||
from sn_verfahrensgebiet.functions.verfahrensgebiet_shape_komplett import verfahrensgebiet_shape_komplett
|
||||
from sn_verfahrensgebiet.functions.grenzpunkt_alkis import grenzpunkte_gemarkungsweise, JOINED_LAYER_NAME
|
||||
from sn_verfahrensgebiet.functions.gemarkung_alkis import (
|
||||
gemarkung_schluessel_und_namen_von_vg_geometrie,
|
||||
@@ -167,7 +169,7 @@ class WorkingTab(QWidget):
|
||||
self.btn_umring_statistik.clicked.connect(self.handle_umringstatistik)
|
||||
self.btn_verf_aus_auswahl.clicked.connect(self.handle_verf_aus_auswahl)
|
||||
self.btn_verf_aus_liste.clicked.connect(self.handle_verf_aus_liste)
|
||||
# self.btn_verf_shape.clicked.connect(self.handle_verf_shape)
|
||||
self.btn_verf_shape.clicked.connect(self.handle_verf_shape)
|
||||
# self.btn_flurst_shape.clicked.connect(self.handle_flurst_shape)
|
||||
|
||||
# Beim Init: aktuelle Verfahrensgebiet-Layer-ID laden und im Dropdown anzeigen
|
||||
@@ -220,6 +222,62 @@ class WorkingTab(QWidget):
|
||||
finally:
|
||||
self._set_busy(self.btn_verf_alkis, False, "Aus ALKIS laden")
|
||||
|
||||
def handle_verf_shape(self) -> None:
|
||||
"""Lädt ein Verfahrensgebiet aus einem ZIP-Archiv mit Shapefile-Set.
|
||||
|
||||
Delegiert an :func:`~sn_verfahrensgebiet.functions.verfahrensgebiet_shape_komplett.verfahrensgebiet_shape_komplett`.
|
||||
Nach Erfolg werden Shape-VG-Layer und Flurstücks-Layer ins Projekt eingefügt,
|
||||
Styles angewendet und die UI-Elemente aktualisiert.
|
||||
"""
|
||||
# Vorprüfung: Verfahrensnummer muss gesetzt sein
|
||||
vkz = get_variable("verfahrensnummer") or ""
|
||||
if not str(vkz).strip():
|
||||
if not ask_yes_no(
|
||||
"Verfahrensnummer nicht gesetzt",
|
||||
"Verfahrensnummer nicht gesetzt. Trotzdem fortfahren?",
|
||||
default=False,
|
||||
parent=self,
|
||||
):
|
||||
return
|
||||
|
||||
self._set_busy(self.btn_verf_shape, True, "Aus Shape laden")
|
||||
try:
|
||||
enriched_layer, flst_layer, bror_layer, status = verfahrensgebiet_shape_komplett(self)
|
||||
|
||||
if status == LoadStatus.NONE or not enriched_layer:
|
||||
set_verfahrensgebiet_layer_id("")
|
||||
return
|
||||
|
||||
project = QgsProject.instance()
|
||||
|
||||
# Flurstücks-Layer ins Projekt (sofern neu geladen)
|
||||
if flst_layer and flst_layer.isValid():
|
||||
existing_flst = project.mapLayersByName(flst_layer.name())
|
||||
if not existing_flst:
|
||||
project.addMapLayer(flst_layer)
|
||||
apply_style(flst_layer, "GIS_Flst_Beschriftung_ALKIS_NAS.qml")
|
||||
self.setze_haken(self.haken_flurst, True)
|
||||
|
||||
# BROR-Layer: QML-Stil anwenden (sofern geladen)
|
||||
if bror_layer and bror_layer.isValid():
|
||||
apply_style(bror_layer, "BauRaumOderBodenordnungsrecht.qml")
|
||||
|
||||
# Shape-VG-Layer ins Projekt
|
||||
if not project.mapLayer(enriched_layer.id()):
|
||||
project.addMapLayer(enriched_layer)
|
||||
apply_style(enriched_layer, "verfahrensgebiet.qml")
|
||||
iface.mapCanvas().setExtent(enriched_layer.extent())
|
||||
iface.mapCanvas().refresh()
|
||||
self.setze_haken(self.haken_verf, True)
|
||||
|
||||
self.verf_layer_combo.setLayer(enriched_layer)
|
||||
self._on_verf_layer_changed(enriched_layer)
|
||||
|
||||
success("Verfahrensgebiet", "Layer aus Shape geladen.", duration=5)
|
||||
|
||||
finally:
|
||||
self._set_busy(self.btn_verf_shape, False, "Aus Shape laden")
|
||||
|
||||
def _set_busy(self, button: QPushButton, busy: bool, original_text: str = "Aus ALKIS laden") -> None:
|
||||
"""Setzt den Busy-State eines Buttons.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user