Skip to content

Commit

Permalink
Add option to set default values for municipality and AGS
Browse files Browse the repository at this point in the history
  • Loading branch information
pathmapper committed Feb 2, 2024
1 parent a84d8d6 commit 8ec2a09
Show file tree
Hide file tree
Showing 11 changed files with 263 additions and 98 deletions.
10 changes: 10 additions & 0 deletions README.md
Expand Up @@ -55,6 +55,15 @@ Es werden nur XPlanGML mit maximal einem *_Bereich unterstützt.

<img src="./screenshots/klassisches_einsatz-szenario.png"/>

## Daten zum Amtlichen Gemeindeschlüssel (AGS)

Im Verzeichnis [ags] befindet sich eine Liste _Amtlichen Gemeindeschlüssel (AGS)_.

Quelle: https://www.xrepository.de/details/urn:de:bund:destatis:bevoelkerungsstatistik:schluessel:ags

© Daten (im Auftrag der Herausgebergemeinschaft Statistische Ämter des Bundes und der Länder) 
    Statistisches Bundesamt (Destatis)

## XPlan-Reader
QGIS-Plugin zum Import einer XPlanGML-Datei:<br>
https://github.com/kreis-viersen/xplan-reader
Expand All @@ -64,4 +73,5 @@ https://github.com/kreis-viersen/xplan-reader
[XPlanung-Spezifikation]: <https://xleitstelle.de/xplanung/releases-xplanung>
[KRZN]: <https://www.krzn.de/>
[XPlanBox]: <https://gitlab.opencode.de/diplanung/ozgxplanung>
[ags]: ./ags/

1 change: 1 addition & 0 deletions ags/AGS_2024-02-29.json

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions ags/copyright.txt
@@ -0,0 +1,2 @@
© Daten (im Auftrag der Herausgebergemeinschaft Statistische Ämter des Bundes und der Länder) 
    Statistisches Bundesamt (Destatis)
6 changes: 4 additions & 2 deletions metadata.txt
Expand Up @@ -2,7 +2,7 @@
name=XPlan-Umring
qgisMinimumVersion=3.24
description=Create XPlanGML from polygon(s)
version=2.5.0
version=2.6.0
author=Kreis Viersen
email=open@kreis-viersen.de

Expand All @@ -19,7 +19,9 @@ icon=xplan_umring_icon.png
experimental=False
server=False
hasProcessingProvider=yes
changelog=v2.5.0
changelog=v2.6.0:
- Vorauswahl der Kommune und des Amtlichen Gemeindeschlüssels aus einer Liste
v2.5.0
- neu: Flächennutzungsplan-Umring v6.0
v2.4.0
- Neues Werkzeug: Geltungsbereich Umringszenario ersetzen
Expand Down
Binary file modified screenshots/auswahldialog_xplan-umring.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
70 changes: 65 additions & 5 deletions xplan_umring.py
Expand Up @@ -26,18 +26,20 @@
__date__ = "2023-05-22"
__copyright__ = "(C) 2023 by Kreis Viersen"

import inspect
import json
import os
import sys
import inspect

from qgis import processing
from qgis.core import QgsApplication, QgsSettings

from qgis.utils import iface

from qgis.PyQt import uic
from qgis.PyQt.QtCore import Qt
from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtWidgets import QAction, QDialog, QMenu, QMessageBox
from qgis.PyQt.QtWidgets import QAction, QCompleter, QDialog, QMenu, QMessageBox

from .xplan_umring_provider import XPlanUmringProvider

Expand Down Expand Up @@ -112,13 +114,68 @@ def about(self):
self.iface.mainWindow(), "Über XPlan-Umring", aboutString
)

def on_combo_box_changed(self, text):
opening_parenthesis_index = text.find("(")

if opening_parenthesis_index != -1:
self.kommune = text[:opening_parenthesis_index].strip()

closing_parenthesis_index = text.find(")", opening_parenthesis_index + 1)

if closing_parenthesis_index != -1:
self.ags = text[
opening_parenthesis_index + 1 : closing_parenthesis_index
]
else:
self.ags = ""
else:
self.kommune = text
self.ags = ""

def runXplanUmring(self):
self.dlg = LoadDialog(self)
settings = QgsSettings()
self.selectedTool = settings.value("xplan-umring/mytool", "bebauungsplan60")
self.settings = QgsSettings()
self.selectedTool = self.settings.value(
"xplan-umring/mytool", "bebauungsplan60"
)

self.kommune = self.settings.value("xplan-umring/kommune", "")
self.ags = self.settings.value("xplan-umring/ags", "")

self.selected_bezeichnung_ags = self.kommune + " (" + self.ags + ")"

ags_data_source = os.path.join(self.plugin_dir, "ags/AGS_2024-02-29.json")

with open(ags_data_source, encoding="UTF-8") as json_file:
ags_data = json.load(json_file)

self.bezeichnung_ags = sorted(
[f"{entry[1]} ({entry[0]})" for entry in ags_data["daten"]]
)

if self.selected_bezeichnung_ags in self.bezeichnung_ags:
selected_index = self.bezeichnung_ags.index(self.selected_bezeichnung_ags)
else:
custom_string = self.kommune
if len(self.ags) > 0:
custom_string = custom_string + " (" + self.ags + ")"
self.bezeichnung_ags.append(custom_string)
selected_index = self.bezeichnung_ags.index(custom_string)

self.dlg.cb_ags.blockSignals(True)
self.dlg.cb_ags.clear()
self.dlg.cb_ags.addItems(self.bezeichnung_ags)
self.dlg.cb_ags.setCurrentIndex(selected_index)
self.dlg.cb_ags.blockSignals(False)
self.dlg.cb_ags.setEditable(True)
completer = QCompleter(self.bezeichnung_ags, self.dlg.cb_ags)
self.dlg.cb_ags.setCompleter(completer)
self.dlg.cb_ags.completer().setCompletionMode(QCompleter.PopupCompletion)
self.dlg.cb_ags.completer().setCaseSensitivity(Qt.CaseInsensitive)
self.dlg.cb_ags.currentTextChanged.connect(self.on_combo_box_changed)

def saveTool(tool):
settings.setValue("xplan-umring/mytool", tool)
self.settings.setValue("xplan-umring/mytool", tool)
self.selectedTool = tool

self.dlg.rb_bp_54.toggled.connect(lambda: saveTool("bebauungsplan54"))
Expand All @@ -142,4 +199,7 @@ def saveTool(tool):

# check if confirmed with OK
if result == 1:
self.settings.setValue("xplan-umring/kommune", self.kommune)
self.settings.setValue("xplan-umring/ags", self.ags)

processing.execAlgorithmDialog("xplanumring:" + self.selectedTool)

0 comments on commit 8ec2a09

Please sign in to comment.