grenzpunktemit 200m puffer um verfahrensgebiet laden
This commit is contained in:
+57
-31
@@ -16,9 +16,8 @@ from qgis.utils import iface
|
||||
from sn_verfahrensgebiet.functions.verfahrensgebiet_alkis import LoadStatus
|
||||
from sn_verfahrensgebiet.functions.flurstueck_alkis import flurstueck_alkis
|
||||
from sn_verfahrensgebiet.functions.verfahrensgebiet_alkis_komplett import verfahrensgebiet_alkis_komplett
|
||||
# TODO Grenzpunkt-Pipeline: Import reaktivieren, sobald grenzpunkt_alkis.py
|
||||
# mit der neuen Pipeline (PunktortTA → istTeilVon → Einzel-URN) umgeschrieben wurde.
|
||||
# from sn_verfahrensgebiet.functions.grenzpunkt_alkis import grenzpunkt_alkis
|
||||
from sn_verfahrensgebiet.functions.grenzpunkt_alkis import grenzpunkte_gemarkungsweise
|
||||
from sn_verfahrensgebiet.functions.gemarkung_alkis import gemarkung_schluessel_und_namen_von_vg_geometrie
|
||||
from sn_verfahrensgebiet.functions.verfahrensgebiet_edit_service import (
|
||||
pruefe_flurstueck_layer,
|
||||
pruefe_auswahl,
|
||||
@@ -405,36 +404,63 @@ class WorkingTab(QWidget):
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
def handle_grenz_alkis(self) -> None:
|
||||
"""Lädt Grenzpunkte (AX_PunktortTA + AX_Grenzpunkt) aus ALKIS.
|
||||
"""Lädt Grenzpunkte gemarkungsweise aus ALKIS.
|
||||
|
||||
TODO Grenzpunkt-Pipeline: Implementierung ausstehend.
|
||||
Neue Pipeline: VG-Geometrie → PunktortTA (spatial filter) →
|
||||
istTeilVon-Attribute → Grenzpunkt per Einzel-URN laden.
|
||||
Bis dahin ist dieser Handler deaktiviert.
|
||||
Verwendet denselben Gemarkungsfilter wie "Verfahrensgebiet aus ALKIS laden":
|
||||
Die Gemarkungsschlüssel werden per Spatial-Join aus der Geometrie des
|
||||
aktuell gewählten Verfahrensgebiet-Layers abgeleitet.
|
||||
"""
|
||||
# TODO Grenzpunkt-Pipeline: Körper reaktivieren, sobald grenzpunkt_alkis.py
|
||||
# mit der neuen Pipeline umgeschrieben wurde.
|
||||
#
|
||||
# self._set_busy(self.btn_grenz_alkis, True, "Grenzpunkte aus ALKIS laden")
|
||||
# try:
|
||||
# punktort_layer, grenzpunkt_layer = grenzpunkt_alkis(self)
|
||||
#
|
||||
# if grenzpunkt_layer and grenzpunkt_layer.isValid():
|
||||
# iface.mapCanvas().refresh()
|
||||
# self.setze_haken(self.haken_grenz, True)
|
||||
# success("Grenzpunkte", "Grenzpunkte erfolgreich geladen.", duration=5)
|
||||
# elif punktort_layer and punktort_layer.isValid():
|
||||
# iface.mapCanvas().refresh()
|
||||
# self.setze_haken(self.haken_grenz, True)
|
||||
# info(
|
||||
# "Grenzpunkte",
|
||||
# "PunktortTA-Layer geladen. Grenzpunkt-IDs konnten nicht aufgelöst werden.",
|
||||
# duration=6,
|
||||
# )
|
||||
# finally:
|
||||
# self._set_busy(self.btn_grenz_alkis, False, "Grenzpunkte aus ALKIS laden")
|
||||
from sn_basis.functions.message_wrapper import warning as _warn
|
||||
_warn("Grenzpunkte", "Grenzpunkt-Pipeline ist noch nicht implementiert.", duration=5)
|
||||
# Verfahrensgebiet-Layer aus dem Dropdown holen
|
||||
vg_layer = self.verf_layer_combo.currentLayer()
|
||||
if not vg_layer or not vg_layer.isValid():
|
||||
warning(
|
||||
"Grenzpunkte",
|
||||
"Kein Verfahrensgebiet-Layer gewählt. Bitte zuerst ein Verfahrensgebiet laden.",
|
||||
duration=6,
|
||||
)
|
||||
return
|
||||
|
||||
# Geometrie des ersten Features als Suchgeometrie
|
||||
feats = list(vg_layer.getFeatures())
|
||||
if not feats:
|
||||
warning("Grenzpunkte", "Verfahrensgebiet-Layer enthält keine Features.", duration=5)
|
||||
return
|
||||
|
||||
# Geometrie über alle Features vereinen
|
||||
from qgis.core import QgsGeometry # type: ignore[import]
|
||||
vg_geom = QgsGeometry.unaryUnion([f.geometry() for f in feats if f.hasGeometry()])
|
||||
|
||||
if not vg_geom or vg_geom.isEmpty():
|
||||
warning("Grenzpunkte", "Verfahrensgebiet-Layer hat keine Geometrie.", duration=5)
|
||||
return
|
||||
|
||||
# Gemarkungsschlüssel per Spatial-Join ermitteln (identisch zu VG-Workflow)
|
||||
schluessel_namen = gemarkung_schluessel_und_namen_von_vg_geometrie(vg_geom)
|
||||
schluessel_liste = [nr for nr, _ in schluessel_namen]
|
||||
|
||||
if not schluessel_liste:
|
||||
warning(
|
||||
"Grenzpunkte",
|
||||
"Keine Gemarkungen für das Verfahrensgebiet gefunden. "
|
||||
"Bitte Netzwerkverbindung prüfen.",
|
||||
duration=6,
|
||||
)
|
||||
return
|
||||
|
||||
self._set_busy(self.btn_grenz_alkis, True, "Grenzpunkte aus ALKIS laden")
|
||||
try:
|
||||
joined_layer = grenzpunkte_gemarkungsweise(self, schluessel_liste, vg_geom=vg_geom)
|
||||
|
||||
if joined_layer and joined_layer.isValid():
|
||||
iface.mapCanvas().refresh()
|
||||
self.setze_haken(self.haken_grenz, True)
|
||||
success(
|
||||
"Grenzpunkte",
|
||||
f"Grenzpunkte erfolgreich geladen ({joined_layer.featureCount()} Objekte).",
|
||||
duration=5,
|
||||
)
|
||||
finally:
|
||||
self._set_busy(self.btn_grenz_alkis, False, "Grenzpunkte aus ALKIS laden")
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user