grenzpunktemit 200m puffer um verfahrensgebiet laden
This commit is contained in:
+1208
-39
File diff suppressed because it is too large
Load Diff
+57
-31
@@ -16,9 +16,8 @@ from qgis.utils import iface
|
|||||||
from sn_verfahrensgebiet.functions.verfahrensgebiet_alkis import LoadStatus
|
from sn_verfahrensgebiet.functions.verfahrensgebiet_alkis import LoadStatus
|
||||||
from sn_verfahrensgebiet.functions.flurstueck_alkis import flurstueck_alkis
|
from sn_verfahrensgebiet.functions.flurstueck_alkis import flurstueck_alkis
|
||||||
from sn_verfahrensgebiet.functions.verfahrensgebiet_alkis_komplett import verfahrensgebiet_alkis_komplett
|
from sn_verfahrensgebiet.functions.verfahrensgebiet_alkis_komplett import verfahrensgebiet_alkis_komplett
|
||||||
# TODO Grenzpunkt-Pipeline: Import reaktivieren, sobald grenzpunkt_alkis.py
|
from sn_verfahrensgebiet.functions.grenzpunkt_alkis import grenzpunkte_gemarkungsweise
|
||||||
# mit der neuen Pipeline (PunktortTA → istTeilVon → Einzel-URN) umgeschrieben wurde.
|
from sn_verfahrensgebiet.functions.gemarkung_alkis import gemarkung_schluessel_und_namen_von_vg_geometrie
|
||||||
# from sn_verfahrensgebiet.functions.grenzpunkt_alkis import grenzpunkt_alkis
|
|
||||||
from sn_verfahrensgebiet.functions.verfahrensgebiet_edit_service import (
|
from sn_verfahrensgebiet.functions.verfahrensgebiet_edit_service import (
|
||||||
pruefe_flurstueck_layer,
|
pruefe_flurstueck_layer,
|
||||||
pruefe_auswahl,
|
pruefe_auswahl,
|
||||||
@@ -405,36 +404,63 @@ class WorkingTab(QWidget):
|
|||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
|
|
||||||
def handle_grenz_alkis(self) -> None:
|
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.
|
Verwendet denselben Gemarkungsfilter wie "Verfahrensgebiet aus ALKIS laden":
|
||||||
Neue Pipeline: VG-Geometrie → PunktortTA (spatial filter) →
|
Die Gemarkungsschlüssel werden per Spatial-Join aus der Geometrie des
|
||||||
istTeilVon-Attribute → Grenzpunkt per Einzel-URN laden.
|
aktuell gewählten Verfahrensgebiet-Layers abgeleitet.
|
||||||
Bis dahin ist dieser Handler deaktiviert.
|
|
||||||
"""
|
"""
|
||||||
# TODO Grenzpunkt-Pipeline: Körper reaktivieren, sobald grenzpunkt_alkis.py
|
# Verfahrensgebiet-Layer aus dem Dropdown holen
|
||||||
# mit der neuen Pipeline umgeschrieben wurde.
|
vg_layer = self.verf_layer_combo.currentLayer()
|
||||||
#
|
if not vg_layer or not vg_layer.isValid():
|
||||||
# self._set_busy(self.btn_grenz_alkis, True, "Grenzpunkte aus ALKIS laden")
|
warning(
|
||||||
# try:
|
"Grenzpunkte",
|
||||||
# punktort_layer, grenzpunkt_layer = grenzpunkt_alkis(self)
|
"Kein Verfahrensgebiet-Layer gewählt. Bitte zuerst ein Verfahrensgebiet laden.",
|
||||||
#
|
duration=6,
|
||||||
# if grenzpunkt_layer and grenzpunkt_layer.isValid():
|
)
|
||||||
# iface.mapCanvas().refresh()
|
return
|
||||||
# self.setze_haken(self.haken_grenz, True)
|
|
||||||
# success("Grenzpunkte", "Grenzpunkte erfolgreich geladen.", duration=5)
|
# Geometrie des ersten Features als Suchgeometrie
|
||||||
# elif punktort_layer and punktort_layer.isValid():
|
feats = list(vg_layer.getFeatures())
|
||||||
# iface.mapCanvas().refresh()
|
if not feats:
|
||||||
# self.setze_haken(self.haken_grenz, True)
|
warning("Grenzpunkte", "Verfahrensgebiet-Layer enthält keine Features.", duration=5)
|
||||||
# info(
|
return
|
||||||
# "Grenzpunkte",
|
|
||||||
# "PunktortTA-Layer geladen. Grenzpunkt-IDs konnten nicht aufgelöst werden.",
|
# Geometrie über alle Features vereinen
|
||||||
# duration=6,
|
from qgis.core import QgsGeometry # type: ignore[import]
|
||||||
# )
|
vg_geom = QgsGeometry.unaryUnion([f.geometry() for f in feats if f.hasGeometry()])
|
||||||
# finally:
|
|
||||||
# self._set_busy(self.btn_grenz_alkis, False, "Grenzpunkte aus ALKIS laden")
|
if not vg_geom or vg_geom.isEmpty():
|
||||||
from sn_basis.functions.message_wrapper import warning as _warn
|
warning("Grenzpunkte", "Verfahrensgebiet-Layer hat keine Geometrie.", duration=5)
|
||||||
_warn("Grenzpunkte", "Grenzpunkt-Pipeline ist noch nicht implementiert.", 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