forked from AG_QGIS/Plugin_SN_Basis
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1881af93f8 |
102
assets/Dateipruefer_flowchart.svg
Normal file
102
assets/Dateipruefer_flowchart.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 115 KiB |
3
assets/Linkpruefer_flowchart.svg
Normal file
3
assets/Linkpruefer_flowchart.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 160 KiB |
122
assets/Objektstruktur.txt
Normal file
122
assets/Objektstruktur.txt
Normal file
@@ -0,0 +1,122 @@
|
||||
+ PluginController
|
||||
└─ GUIManager
|
||||
└─ PrüfManager (koordiniert alle Prüfer)
|
||||
├─ Dateiprüfer
|
||||
├─ Linklistenprüfer
|
||||
│ └─ Zeilenprüfer[n]
|
||||
│ ├─ Linkprüfer
|
||||
│ └─ Stilprüfer
|
||||
└─ LayerLoader
|
||||
└─ Logger
|
||||
|
||||
Plan41_plugin/
|
||||
│
|
||||
├── plugin/ # Plugin-Code
|
||||
│ ├── main_plugin.py # PluginController
|
||||
│ ├── dock_widget.py # GUIManager
|
||||
│ ├── pruefer/
|
||||
│ │ ├── dateipruefer.py
|
||||
│ │ ├── linklistenpruefer.py
|
||||
│ │ ├── zeilenpruefer.py
|
||||
│ │ ├── linkpruefer.py
|
||||
│ │ └── stilpruefer.py
|
||||
│ ├── loader.py
|
||||
│ └── logger.py
|
||||
│
|
||||
├── tests/ # Unit-Tests
|
||||
│ ├── __init__.py
|
||||
│ ├── test_dateipruefer.py
|
||||
│ ├── test_linklistenpruefer.py
|
||||
│ ├── test_zeilenpruefer.py
|
||||
│ ├── test_linkpruefer.py
|
||||
│ ├── test_stilpruefer.py
|
||||
│ ├── test_logger.py
|
||||
│ └── run_tests.py # zentraler Test-Runner
|
||||
│
|
||||
├── requirements.txt
|
||||
└── README.md
|
||||
|
||||
|
||||
+------------------------------------+
|
||||
| PluginController |
|
||||
+------------------------------------+
|
||||
| - Dock_widget: GUIManager |
|
||||
| - pruef_manager: PruefManager |
|
||||
| - loader: LayerLoader |
|
||||
| - logger: Logger |
|
||||
+------------------------------------+
|
||||
| + start(): void |
|
||||
+------------------------------------+
|
||||
|
||||
+------------------------------------+
|
||||
| GUIManager |
|
||||
+------------------------------------+
|
||||
| - dialog: QWidget |
|
||||
+------------------------------------+
|
||||
| + getParameter(): dict |
|
||||
+------------------------------------+
|
||||
|
||||
+------------------------------------+
|
||||
| PruefManager |
|
||||
+------------------------------------+
|
||||
| - dateipruefer: Dateipruefer |
|
||||
| - linklistenpruefer: Linklisten... |
|
||||
+------------------------------------+
|
||||
| + pruefe_alle(parameter): list |
|
||||
+------------------------------------+
|
||||
|
||||
+------------------------------------+
|
||||
| Dateipruefer |
|
||||
+------------------------------------+
|
||||
| + pruefe(pfad: str): PruefErgebnis |
|
||||
+------------------------------------+
|
||||
|
||||
+------------------------------------+
|
||||
| Linklistenpruefer |
|
||||
+------------------------------------+
|
||||
| + pruefe(pfad: str): list[Zeile] |
|
||||
+------------------------------------+
|
||||
|
||||
+------------------------------------+
|
||||
| Zeilenpruefer |
|
||||
+------------------------------------+
|
||||
| - linkpruefer: Linkpruefer |
|
||||
| - stilpruefer: Stilpruefer |
|
||||
+------------------------------------+
|
||||
| + pruefe(zeile: str): LayerAuftrag |
|
||||
+------------------------------------+
|
||||
|
||||
+------------------------------------+
|
||||
| Linkpruefer |
|
||||
+------------------------------------+
|
||||
| + pruefe(link: str): PruefErgebnis |
|
||||
+------------------------------------+
|
||||
|
||||
+------------------------------------+
|
||||
| Stilpruefer |
|
||||
+------------------------------------+
|
||||
| + pruefe(stilname: str): Pruef... |
|
||||
+------------------------------------+
|
||||
|
||||
+------------------------------------+
|
||||
| LayerLoader |
|
||||
+------------------------------------+
|
||||
| + lade(layer_auftrag): void |
|
||||
+------------------------------------+
|
||||
|
||||
+------------------------------------+
|
||||
| Logger |
|
||||
+------------------------------------+
|
||||
| + schreibe(msg: str): void |
|
||||
| + exportiere(): file |
|
||||
+------------------------------------+
|
||||
|
||||
+------------------------------------+
|
||||
| PruefErgebnis |
|
||||
+------------------------------------+
|
||||
| - erfolgreich: bool |
|
||||
| - daten: dict |
|
||||
| - fehler: list[str] |
|
||||
| - warnungen: list[str] |
|
||||
+------------------------------------+
|
||||
|
||||
22
assets/Pluginkonzept.md
Normal file
22
assets/Pluginkonzept.md
Normal file
@@ -0,0 +1,22 @@
|
||||
**Pluginkonzept**
|
||||
Das Plugin ist grundsätzlich als modulares System gedacht. Komponenten sollen sowohl im Plugin selbst, aber auch in anderen Anwendungen verbaut werden können.
|
||||
Die Module sind als Python-Objekte angelegt.
|
||||
Alle Fallunterscheidungen, Exception-Management und Fehlerbehandlung sind in die "Prüfer" ausgelagert.
|
||||
Der "Prüfmanager" übernimmt dabei die Interaktion mit dem Anwender, um Abfragen oder Fallunterscheidungen durchzuführen, die nicht anhand des Codes erfolgen können.
|
||||
Alle Prüfer geben ein Objekt "Prüfergebnis" zurück, das das Ergebnis der Fallunterscheidung, Exceptions und Fehlermeldungen enthält. Die Prüfer haben selbst keine UI-Elemente.
|
||||
|
||||
| Modul | Aufgabe | Beschreibung |
|
||||
|-------------------|---------------------------------------|--------------|
|
||||
|PruefManager | Nutzerabfragen, Ergebnisanpassung | Der Pruefmanager wertet das Ergebnis vom Typ "PruefErgebnis" aus. Sind Entscheidungen erforderlich, fragt er den Anwender und passt das PruefErgebnis entsprechend an, bzw gibt Fehler aus|
|
||||
|Dateipruefer | Auswertung der Eingaben in Dateiauswahlfeldern | Der Dateipruefer prüft die Eingaben in Dateifeldern. Dabei kann bei jeder Prüfung vorgegeben werden, ob leere Eingabefelder zulässig sind, und ob sie, wenn sie leer sind, eine Standarddatei aufrufen oder temporäre Layer erzeugen. In jedem Fall wird der Nutzer zur Entscheidung aufgefordert, ob das leere Feld beabsichtigt ist, oder ein Bedienfehler|
|
||||
|Linklistenpruefer | Spezialprüfer für die Linkliste aus dem Plan41-Plugin | Damit die beiden Objekte Stilpruefer und Linkpruefer auch unabhängig voneinander verwendet werden können, fasst der Linklistenpruefer die Ergebnisse zusammen und ergänzt eine Prüfung zur Kartenreihenfolge/Layerreihenfolge|
|
||||
|Linkpruefer | prüft die Quelle eines angegebenen Links technisch und entscheidet die technischen Parameter nach Typ und Quellort | Enthält eine Fallunterscheidung für lokale und remote-Quellen, sowie für unterschiedliche Datenanbieter. Der Linkpruefer gibt Fehler und Exceptions zurück, wenn die Quelle fehlerhaft oder nicht erreichbar ist.|
|
||||
|Stilpruefer | Prüft verschiedene Stilquellen | Der Stilpruefer prüft .qml und eingebettete Stile und gibt Warnungen zurück, bzw. Exceptions, um Nutzerentscheidungen auszulösen|
|
||||
|
||||
Jedes Modul hat seinen eigenen Unittest. Die Tests werden im Unterordner "Test" zusammengefasst und können gesammelt über die "run_tests.py" aufgerufen werden.
|
||||
|
||||
Jedes Modul wird durch ein Mermaid-ClassDiagram beschrieben. Die Entscheidungen und Exceptions, sowie die behandelten Fehler werden visuell aufbereitet.
|
||||
|
||||
Zur Verarbeitung werden alle Nutzerinteraktionen und Angaben zunächst in den zuständigen Prüfer übergeben. Wenn vorhanden, mit den erforderlichen Parametern. Das Ergebnis wird zur Auswertung an den Pruefmanager übergeben. Dieser bereitet das Ergebnis auf, behandelt alle Exceptions und Anwenderentscheidungen und gibt die Daten mit den richtigen Parametern zur Weiterverarbeitung an die eigentliche Funktion.
|
||||
|
||||
|
||||
1
assets/Stilpruefer_flowchart.svg
Normal file
1
assets/Stilpruefer_flowchart.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 15 KiB |
BIN
assets/UML_Struktur.png
Normal file
BIN
assets/UML_Struktur.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 138 KiB |
97
modules/Dateipruefer.py
Normal file
97
modules/Dateipruefer.py
Normal file
@@ -0,0 +1,97 @@
|
||||
import os
|
||||
from enum import Enum, auto
|
||||
|
||||
|
||||
# -------------------------------
|
||||
# ENUMS
|
||||
# -------------------------------
|
||||
class LeererPfadModus(Enum):#legt die modi fest, die für Dateipfade möglich sind
|
||||
VERBOTEN = auto() #ein leeres Eingabefeld stellt einen Fehler dar
|
||||
NUTZE_STANDARD = auto() #ein leeres Eingabefeld fordert zur Entscheidung auf: nutze Standard oder brich ab
|
||||
TEMPORAER_ERLAUBT = auto() #ein leeres Eingabefeld fordert zur Entscheidung auf: arbeite temporär oder brich ab.
|
||||
|
||||
|
||||
class DateiEntscheidung(Enum):#legt die Modi fest, wie mit bestehenden Dateien umgegangen werden soll (hat das das QGSFile-Objekt schon selbst?)
|
||||
ERSETZEN = auto()#Ergebnis der Nutzerentscheidung: bestehende Datei ersetzen
|
||||
ANHAENGEN = auto()#Ergebnis der Nutzerentscheidung: an bestehende Datei anhängen
|
||||
ABBRECHEN = auto()#bricht den Vorgang ab. (muss das eine definierte Option sein? oder geht das auch mit einem normalen Abbruch-Button)
|
||||
|
||||
|
||||
# -------------------------------
|
||||
# RÜCKGABEOBJEKT
|
||||
# -------------------------------
|
||||
#Das Dateiprüfergebnis wird an den Prüfmanager übergeben. Alle GUI-Abfragen werden im Prüfmanager behandelt.
|
||||
class DateipruefErgebnis:
|
||||
#Definition der Parameter und Festlegung auf den Parametertyp,bzw den Standardwert
|
||||
def __init__(self, erfolgreich: bool, pfad: str = None, temporär: bool = False,
|
||||
entscheidung: DateiEntscheidung = None, fehler: list = None):
|
||||
self.erfolgreich = erfolgreich
|
||||
self.pfad = pfad
|
||||
self.temporär = temporär
|
||||
self.entscheidung = entscheidung
|
||||
self.fehler = fehler or []
|
||||
|
||||
def __repr__(self):
|
||||
return (f"DateipruefErgebnis(erfolgreich={self.erfolgreich}, "
|
||||
f"pfad={repr(self.pfad)}, temporär={self.temporär}, "
|
||||
f"entscheidung={repr(self.entscheidung)}, fehler={repr(self.fehler)})")
|
||||
|
||||
# -------------------------------
|
||||
# DATEIPRÜFER
|
||||
# -------------------------------
|
||||
class Dateipruefer:
|
||||
def pruefe(self, pfad: str,
|
||||
leer_modus: LeererPfadModus,
|
||||
standardname: str = None,
|
||||
plugin_pfad: str = None,
|
||||
vorhandene_datei_entscheidung: DateiEntscheidung = None) -> DateipruefErgebnis: #Rückgabetypannotation; "Die Funktion "pruefe" gibt ein Objekt vom Typ "DateipruefErgebnis" zurück
|
||||
|
||||
# 1. Prüfe, ob das Eingabefeld leer ist
|
||||
if not pfad or pfad.strip() == "":#wenn der angegebene Pfad leer oder ungültig ist:
|
||||
if leer_modus == LeererPfadModus.VERBOTEN: #wenn der Modus "verboten" vorgegeben ist, gib zurück, dass der Test fehlgeschlagen ist
|
||||
return DateipruefErgebnis(
|
||||
erfolgreich=False,
|
||||
fehler=["Kein Pfad angegeben."]
|
||||
)
|
||||
elif leer_modus == LeererPfadModus.NUTZE_STANDARD:#wenn der Modus "Nutze_Standard" vorgegeben ist...
|
||||
if not plugin_pfad or not standardname:#wenn kein gültiger Pluginpfad angegeben ist oder die Standarddatei fehlt...
|
||||
return DateipruefErgebnis(
|
||||
erfolgreich=False,
|
||||
fehler=["Standardpfad oder -name fehlen."]#..gib zurück, dass der Test fehlgeschlagen ist
|
||||
)
|
||||
pfad = os.path.join(plugin_pfad, standardname)#...wenn es Standarddatei und Pluginpfad gibt...setze sie zum Pfad zusammen...
|
||||
elif leer_modus == LeererPfadModus.TEMPORAER_ERLAUBT:#wenn der Modus "temporär" vorgegeben ist,...
|
||||
return DateipruefErgebnis(#...gib zurück, dass das Prüfergebnis erfolgreich ist (Entscheidung, ob temporör gearbeitet werden soll oder nicht, kommt woanders)
|
||||
erfolgreich=True,
|
||||
pfad=None
|
||||
)
|
||||
|
||||
# 2. Existiert die Datei bereits?
|
||||
if os.path.exists(pfad):#wenn die Datei vorhanden ist...
|
||||
if not vorhandene_datei_entscheidung:#aber noch keine Entscheidung getroffen ist...
|
||||
return DateipruefErgebnis(
|
||||
erfolgreich=True,#ist die Prüfung erfolgreich, aber es muss noch eine Entscheidung verlangt werden
|
||||
pfad=pfad,
|
||||
entscheidung=None,
|
||||
fehler=["Datei existiert bereits – Entscheidung ausstehend."]
|
||||
)
|
||||
|
||||
if vorhandene_datei_entscheidung == DateiEntscheidung.ABBRECHEN:
|
||||
return DateipruefErgebnis(#...der Nutzer aber abgebrochen hat...
|
||||
erfolgreich=False,#ist die Prüfung fehlgeschlagen ISSUE: ergibt das Sinn?
|
||||
pfad=pfad,
|
||||
fehler=["Benutzer hat abgebrochen."]
|
||||
)
|
||||
|
||||
return DateipruefErgebnis(
|
||||
erfolgreich=True,
|
||||
pfad=pfad,
|
||||
entscheidung=vorhandene_datei_entscheidung
|
||||
)
|
||||
|
||||
# 3. Pfad gültig und Datei nicht vorhanden
|
||||
#wenn alle Varianten NICHT zutreffen, weil ein gültiger Pfad eingegeben wurde und die Datei noch nicht vorhanden ist:
|
||||
return DateipruefErgebnis(
|
||||
erfolgreich=True,
|
||||
pfad=pfad
|
||||
)
|
||||
51
modules/Pruefmanager.py
Normal file
51
modules/Pruefmanager.py
Normal file
@@ -0,0 +1,51 @@
|
||||
from PyQt5.QtWidgets import QMessageBox, QFileDialog
|
||||
from Dateipruefer import DateiEntscheidung
|
||||
|
||||
class PruefManager:
|
||||
|
||||
def __init__(self, iface=None, plugin_pfad=None):
|
||||
self.iface = iface
|
||||
self.plugin_pfad = plugin_pfad
|
||||
|
||||
def frage_datei_ersetzen_oder_anhaengen(self, pfad: str) -> DateiEntscheidung:
|
||||
"""Fragt den Nutzer, ob die vorhandene Datei ersetzt, angehängt oder abgebrochen werden soll."""
|
||||
msg = QMessageBox()
|
||||
msg.setIcon(QMessageBox.Question)
|
||||
msg.setWindowTitle("Datei existiert")
|
||||
msg.setText(f"Die Datei '{pfad}' existiert bereits.\nWas möchtest du tun?")
|
||||
msg.setStandardButtons(QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)
|
||||
msg.setDefaultButton(QMessageBox.Yes)
|
||||
msg.button(QMessageBox.Yes).setText("Ersetzen")
|
||||
msg.button(QMessageBox.No).setText("Anhängen")
|
||||
msg.button(QMessageBox.Cancel).setText("Abbrechen")
|
||||
|
||||
result = msg.exec_()
|
||||
|
||||
if result == QMessageBox.Yes:
|
||||
return DateiEntscheidung.ERSETZEN
|
||||
elif result == QMessageBox.No:
|
||||
return DateiEntscheidung.ANHAENGEN
|
||||
else:
|
||||
return DateiEntscheidung.ABBRECHEN
|
||||
|
||||
def frage_temporär_verwenden(self) -> bool:
|
||||
"""Fragt den Nutzer, ob mit temporären Layern gearbeitet werden soll."""
|
||||
msg = QMessageBox()
|
||||
msg.setIcon(QMessageBox.Question)
|
||||
msg.setWindowTitle("Temporäre Layer")
|
||||
msg.setText("Kein Speicherpfad wurde angegeben.\nMit temporären Layern fortfahren?")
|
||||
msg.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
|
||||
msg.setDefaultButton(QMessageBox.Yes)
|
||||
|
||||
result = msg.exec_()
|
||||
return result == QMessageBox.Yes
|
||||
|
||||
def waehle_dateipfad(self, titel="Speicherort wählen", filter="GeoPackage (*.gpkg)") -> str:
|
||||
"""Öffnet einen QFileDialog zur Dateiauswahl."""
|
||||
pfad, _ = QFileDialog.getSaveFileName(
|
||||
parent=None,
|
||||
caption=titel,
|
||||
directory=self.plugin_pfad or "",
|
||||
filter=filter
|
||||
)
|
||||
return pfad
|
||||
0
modules/__init__py
Normal file
0
modules/__init__py
Normal file
94
modules/linkpruefer.py
Normal file
94
modules/linkpruefer.py
Normal file
@@ -0,0 +1,94 @@
|
||||
# Importiert den Event-Loop und URL-Objekte aus der PyQt-Bibliothek von QGIS
|
||||
from qgis.PyQt.QtCore import QEventLoop, QUrl
|
||||
# Importiert den NetworkAccessManager aus dem QGIS Core-Modul
|
||||
from qgis.core import QgsNetworkAccessManager
|
||||
# Importiert das QNetworkRequest-Objekt für HTTP-Anfragen
|
||||
from qgis.PyQt.QtNetwork import QNetworkRequest
|
||||
# Importiert die Klasse für das Ergebnisobjekt der Prüfung
|
||||
from pruef_ergebnis import PruefErgebnis
|
||||
|
||||
# Definiert die Klasse zum Prüfen von Links
|
||||
class Linkpruefer:
|
||||
"""Prüft den Link mit QgsNetworkAccessManager und klassifiziert Anbieter nach Attribut."""
|
||||
|
||||
# Statische Zuordnung möglicher Anbietertypen als Konstanten
|
||||
ANBIETER_TYPEN: dict[str, str] = {
|
||||
"REST": "REST",
|
||||
"WFS": "WFS",
|
||||
"WMS": "WMS",
|
||||
"OGR": "OGR"
|
||||
}
|
||||
|
||||
# Konstruktor zum Initialisieren der Instanz
|
||||
def __init__(self, link: str, anbieter: str):
|
||||
# Speichert den übergebenen Link als Instanzvariable
|
||||
self.link = link
|
||||
|
||||
# Speichert den Anbietertyp, bereinigt und in Großbuchstaben (auch wenn leer oder None)
|
||||
self.anbieter = anbieter.upper().strip() if anbieter else ""
|
||||
# Erstellt einen neuen NetworkAccessManager für Netzwerkverbindungen
|
||||
self.network_manager = QgsNetworkAccessManager()
|
||||
|
||||
# Methode zur Klassifizierung des Anbieters und der Quelle
|
||||
def klassifiziere_anbieter(self):
|
||||
# Bestimmt den Typ auf Basis der vorgegebenen Konstante oder nimmt den Rohwert
|
||||
typ = self.ANBIETER_TYPEN.get(self.anbieter, self.anbieter)
|
||||
# Unterscheidet zwischen "remote" (http/https) oder "local" (Dateipfad)
|
||||
quelle = "remote" if self.link.startswith(("http://", "https://")) else "local"
|
||||
# Gibt Typ und Quelle als Dictionary zurück
|
||||
return {
|
||||
"typ": typ,
|
||||
"quelle": quelle
|
||||
}
|
||||
|
||||
|
||||
# Prüft die Erreichbarkeit und Plausibilität des Links
|
||||
def pruefe_link(self):
|
||||
# Initialisiert Listen für Fehler und Warnungen
|
||||
fehler = []
|
||||
warnungen = []
|
||||
|
||||
# Prüft, ob ein Link übergeben wurde
|
||||
if not self.link:
|
||||
fehler.append("Link fehlt.")
|
||||
return PruefErgebnis(False, fehler=fehler, warnungen=warnungen)
|
||||
|
||||
# Prüft, ob ein Anbieter angegeben ist
|
||||
if not self.anbieter or not self.anbieter.strip():
|
||||
fehler.append("Anbieter muss gesetzt werden und darf nicht leer sein.")
|
||||
|
||||
# Prüfung für Remote-Links (http/https)
|
||||
if self.link.startswith(("http://", "https://")):
|
||||
# Erstellt eine HTTP-Anfrage mit dem Link
|
||||
request = QNetworkRequest(QUrl(self.link))
|
||||
# Startet eine HEAD-Anfrage über den NetworkManager
|
||||
reply = self.network_manager.head(request)
|
||||
|
||||
# Wartet synchron auf die Netzwerkanwort (Event Loop)
|
||||
loop = QEventLoop()
|
||||
reply.finished.connect(loop.quit)
|
||||
loop.exec_()
|
||||
|
||||
# Prüft auf Netzwerkfehler
|
||||
if reply.error():
|
||||
fehler.append(f"Verbindungsfehler: {reply.errorString()}")
|
||||
else:
|
||||
# Holt den HTTP-Statuscode aus der Antwort
|
||||
status = reply.attribute(reply.HttpStatusCodeAttribute)
|
||||
# Prüft, ob der Status außerhalb des Erfolgsbereichs liegt
|
||||
if status is None or status < 200 or status >= 400:
|
||||
fehler.append(f"Link nicht erreichbar: HTTP {status}")
|
||||
# Räumt die Antwort auf (Vermeidung von Speicherlecks)
|
||||
reply.deleteLater()
|
||||
else:
|
||||
# Plausibilitäts-Check für lokale Links (Dateien), prüft auf Dateiendung
|
||||
if "." not in self.link.split("/")[-1]:
|
||||
warnungen.append("Der lokale Link sieht ungewöhnlich aus.")
|
||||
|
||||
# Gibt das Ergebnisobjekt mit allen gesammelten Informationen zurück
|
||||
return PruefErgebnis(len(fehler) == 0, daten=self.klassifiziere_anbieter(), fehler=fehler, warnungen=warnungen)
|
||||
|
||||
# Führt die Linkprüfung als externe Methode aus
|
||||
def ausfuehren(self):
|
||||
# Gibt das Ergebnis der Prüf-Methode zurück
|
||||
return self.pruefe_link()
|
||||
11
modules/pruef_ergebnis
Normal file
11
modules/pruef_ergebnis
Normal file
@@ -0,0 +1,11 @@
|
||||
# Klasse zur Definition eines Pruefergebnis-Objekts, das in allen Prüfern verwendet werden kann
|
||||
class PruefErgebnis:
|
||||
def __init__(self, erfolgreich: bool, daten=None, fehler=None, warnungen=None):
|
||||
self.erfolgreich = erfolgreich
|
||||
self.daten = daten or {}
|
||||
self.fehler = fehler or []
|
||||
self.warnungen = warnungen or []
|
||||
|
||||
def __repr__(self):
|
||||
return (f"PruefErgebnis(erfolgreich={self.erfolgreich}, "
|
||||
f"daten={self.daten}, fehler={self.fehler}, warnungen={self.warnungen})")
|
||||
11
modules/pruef_ergebnis.py
Normal file
11
modules/pruef_ergebnis.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# Klasse zur Definition eines Pruefergebnis-Objekts, das in allen Prüfern verwendet werden kann
|
||||
class PruefErgebnis:
|
||||
def __init__(self, erfolgreich: bool, daten=None, fehler=None, warnungen=None):
|
||||
self.erfolgreich = erfolgreich
|
||||
self.daten = daten or {}
|
||||
self.fehler = fehler or []
|
||||
self.warnungen = warnungen or []
|
||||
|
||||
def __repr__(self):
|
||||
return (f"PruefErgebnis(erfolgreich={self.erfolgreich}, "
|
||||
f"daten={self.daten}, fehler={self.fehler}, warnungen={self.warnungen})")
|
||||
45
modules/stilpruefer.py
Normal file
45
modules/stilpruefer.py
Normal file
@@ -0,0 +1,45 @@
|
||||
import os
|
||||
from pruef_ergebnis import PruefErgebnis
|
||||
|
||||
|
||||
class Stilpruefer:
|
||||
"""
|
||||
Prüft, ob ein angegebener Stilpfad gültig und nutzbar ist.
|
||||
- Wenn kein Stil angegeben ist, gilt die Prüfung als erfolgreich.
|
||||
- Wenn angegeben:
|
||||
* Datei muss existieren
|
||||
* Dateiendung muss '.qml' sein
|
||||
"""
|
||||
|
||||
def pruefe(self, stilpfad: str) -> PruefErgebnis:
|
||||
# kein Stil angegeben -> erfolgreich, keine Warnung
|
||||
if not stilpfad or stilpfad.strip() == "":
|
||||
return PruefErgebnis(
|
||||
erfolgreich=True,
|
||||
daten={"stil": None},
|
||||
warnungen=["Kein Stil angegeben."]
|
||||
)
|
||||
|
||||
fehler = []
|
||||
warnungen = []
|
||||
|
||||
# Prüfung: Datei existiert?
|
||||
if not os.path.exists(stilpfad):
|
||||
fehler.append(f"Stildatei nicht gefunden: {stilpfad}")
|
||||
|
||||
# Prüfung: Endung .qml?
|
||||
elif not stilpfad.lower().endswith(".qml"):
|
||||
fehler.append(f"Ungültige Dateiendung für Stil: {stilpfad}")
|
||||
else:
|
||||
# Hinweis: alle Checks bestanden
|
||||
return PruefErgebnis(
|
||||
erfolgreich=True,
|
||||
daten={"stil": stilpfad}
|
||||
)
|
||||
|
||||
return PruefErgebnis(
|
||||
erfolgreich=False if fehler else True,
|
||||
daten={"stil": stilpfad},
|
||||
fehler=fehler,
|
||||
warnungen=warnungen
|
||||
)
|
||||
609
styles/GIS_63000F_Objekt_Denkmalschutz.qml
Normal file
609
styles/GIS_63000F_Objekt_Denkmalschutz.qml
Normal file
@@ -0,0 +1,609 @@
|
||||
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
|
||||
<qgis hasScaleBasedVisibilityFlag="0" version="3.16.0-Hannover" minScale="100000000" labelsEnabled="0" readOnly="0" styleCategories="AllStyleCategories" simplifyLocal="1" maxScale="0" simplifyMaxScale="1" simplifyDrawingTol="1" simplifyDrawingHints="1" simplifyAlgorithm="0">
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<temporal startExpression="" enabled="0" endExpression="" accumulate="0" durationField="" durationUnit="min" fixedDuration="0" startField="" mode="0" endField="">
|
||||
<fixedRange>
|
||||
<start></start>
|
||||
<end></end>
|
||||
</fixedRange>
|
||||
</temporal>
|
||||
<renderer-v2 symbollevels="0" forceraster="0" type="singleSymbol" enableorderby="0">
|
||||
<symbols>
|
||||
<symbol name="0" force_rhr="0" type="fill" alpha="1" clip_to_extent="1">
|
||||
<layer pass="0" enabled="1" class="LinePatternFill" locked="0">
|
||||
<prop k="angle" v="45"/>
|
||||
<prop k="color" v="196,60,57,255"/>
|
||||
<prop k="distance" v="10"/>
|
||||
<prop k="distance_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="distance_unit" v="Pixel"/>
|
||||
<prop k="line_width" v="0.26"/>
|
||||
<prop k="line_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="line_width_unit" v="MM"/>
|
||||
<prop k="offset" v="0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="outline_width_unit" v="MM"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<symbol name="@0@0" force_rhr="0" type="line" alpha="1" clip_to_extent="1">
|
||||
<layer pass="0" enabled="1" class="SimpleLine" locked="0">
|
||||
<prop k="align_dash_pattern" v="0"/>
|
||||
<prop k="capstyle" v="square"/>
|
||||
<prop k="customdash" v="5;2"/>
|
||||
<prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="customdash_unit" v="MM"/>
|
||||
<prop k="dash_pattern_offset" v="0"/>
|
||||
<prop k="dash_pattern_offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="dash_pattern_offset_unit" v="MM"/>
|
||||
<prop k="draw_inside_polygon" v="0"/>
|
||||
<prop k="joinstyle" v="bevel"/>
|
||||
<prop k="line_color" v="0,0,0,255"/>
|
||||
<prop k="line_style" v="solid"/>
|
||||
<prop k="line_width" v="1"/>
|
||||
<prop k="line_width_unit" v="Pixel"/>
|
||||
<prop k="offset" v="0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="ring_filter" v="0"/>
|
||||
<prop k="tweak_dash_pattern_on_corners" v="0"/>
|
||||
<prop k="use_custom_dash" v="0"/>
|
||||
<prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</layer>
|
||||
<layer pass="0" enabled="1" class="LinePatternFill" locked="0">
|
||||
<prop k="angle" v="135"/>
|
||||
<prop k="color" v="0,0,255,255"/>
|
||||
<prop k="distance" v="10"/>
|
||||
<prop k="distance_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="distance_unit" v="Pixel"/>
|
||||
<prop k="line_width" v="0.26"/>
|
||||
<prop k="line_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="line_width_unit" v="MM"/>
|
||||
<prop k="offset" v="0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="outline_width_unit" v="MM"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<symbol name="@0@1" force_rhr="0" type="line" alpha="1" clip_to_extent="1">
|
||||
<layer pass="0" enabled="1" class="SimpleLine" locked="0">
|
||||
<prop k="align_dash_pattern" v="0"/>
|
||||
<prop k="capstyle" v="square"/>
|
||||
<prop k="customdash" v="5;2"/>
|
||||
<prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="customdash_unit" v="MM"/>
|
||||
<prop k="dash_pattern_offset" v="0"/>
|
||||
<prop k="dash_pattern_offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="dash_pattern_offset_unit" v="MM"/>
|
||||
<prop k="draw_inside_polygon" v="0"/>
|
||||
<prop k="joinstyle" v="bevel"/>
|
||||
<prop k="line_color" v="0,0,0,255"/>
|
||||
<prop k="line_style" v="solid"/>
|
||||
<prop k="line_width" v="1"/>
|
||||
<prop k="line_width_unit" v="Pixel"/>
|
||||
<prop k="offset" v="0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="ring_filter" v="0"/>
|
||||
<prop k="tweak_dash_pattern_on_corners" v="0"/>
|
||||
<prop k="use_custom_dash" v="0"/>
|
||||
<prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</layer>
|
||||
<layer pass="0" enabled="1" class="SimpleLine" locked="0">
|
||||
<prop k="align_dash_pattern" v="0"/>
|
||||
<prop k="capstyle" v="square"/>
|
||||
<prop k="customdash" v="5;2"/>
|
||||
<prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="customdash_unit" v="MM"/>
|
||||
<prop k="dash_pattern_offset" v="0"/>
|
||||
<prop k="dash_pattern_offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="dash_pattern_offset_unit" v="MM"/>
|
||||
<prop k="draw_inside_polygon" v="0"/>
|
||||
<prop k="joinstyle" v="bevel"/>
|
||||
<prop k="line_color" v="35,35,35,255"/>
|
||||
<prop k="line_style" v="solid"/>
|
||||
<prop k="line_width" v="1"/>
|
||||
<prop k="line_width_unit" v="Pixel"/>
|
||||
<prop k="offset" v="0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="ring_filter" v="0"/>
|
||||
<prop k="tweak_dash_pattern_on_corners" v="0"/>
|
||||
<prop k="use_custom_dash" v="0"/>
|
||||
<prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</symbols>
|
||||
<rotation/>
|
||||
<sizescale/>
|
||||
</renderer-v2>
|
||||
<customproperties>
|
||||
<property key="dualview/previewExpressions">
|
||||
<value>"gml_id"</value>
|
||||
</property>
|
||||
<property key="embeddedWidgets/count" value="0"/>
|
||||
<property key="variableNames"/>
|
||||
<property key="variableValues"/>
|
||||
</customproperties>
|
||||
<blendMode>0</blendMode>
|
||||
<featureBlendMode>0</featureBlendMode>
|
||||
<layerOpacity>1</layerOpacity>
|
||||
<SingleCategoryDiagramRenderer diagramType="Histogram" attributeLegend="1">
|
||||
<DiagramCategory enabled="0" spacing="5" showAxis="1" direction="0" sizeType="MM" barWidth="5" height="15" minScaleDenominator="0" scaleBasedVisibility="0" spacingUnit="MM" maxScaleDenominator="1e+08" sizeScale="3x:0,0,0,0,0,0" diagramOrientation="Up" rotationOffset="270" penColor="#000000" penWidth="0" backgroundColor="#ffffff" penAlpha="255" width="15" spacingUnitScale="3x:0,0,0,0,0,0" backgroundAlpha="255" opacity="1" lineSizeType="MM" scaleDependency="Area" minimumSize="0" labelPlacementMethod="XHeight" lineSizeScale="3x:0,0,0,0,0,0">
|
||||
<fontProperties description="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" style=""/>
|
||||
<axisSymbol>
|
||||
<symbol name="" force_rhr="0" type="line" alpha="1" clip_to_extent="1">
|
||||
<layer pass="0" enabled="1" class="SimpleLine" locked="0">
|
||||
<prop k="align_dash_pattern" v="0"/>
|
||||
<prop k="capstyle" v="square"/>
|
||||
<prop k="customdash" v="5;2"/>
|
||||
<prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="customdash_unit" v="MM"/>
|
||||
<prop k="dash_pattern_offset" v="0"/>
|
||||
<prop k="dash_pattern_offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="dash_pattern_offset_unit" v="MM"/>
|
||||
<prop k="draw_inside_polygon" v="0"/>
|
||||
<prop k="joinstyle" v="bevel"/>
|
||||
<prop k="line_color" v="35,35,35,255"/>
|
||||
<prop k="line_style" v="solid"/>
|
||||
<prop k="line_width" v="0.26"/>
|
||||
<prop k="line_width_unit" v="MM"/>
|
||||
<prop k="offset" v="0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="ring_filter" v="0"/>
|
||||
<prop k="tweak_dash_pattern_on_corners" v="0"/>
|
||||
<prop k="use_custom_dash" v="0"/>
|
||||
<prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</axisSymbol>
|
||||
</DiagramCategory>
|
||||
</SingleCategoryDiagramRenderer>
|
||||
<DiagramLayerSettings priority="0" obstacle="0" showAll="1" placement="1" dist="0" linePlacementFlags="18" zIndex="0">
|
||||
<properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</properties>
|
||||
</DiagramLayerSettings>
|
||||
<geometryOptions removeDuplicateNodes="0" geometryPrecision="0">
|
||||
<activeChecks/>
|
||||
<checkConfiguration type="Map">
|
||||
<Option name="QgsGeometryGapCheck" type="Map">
|
||||
<Option name="allowedGapsBuffer" type="double" value="0"/>
|
||||
<Option name="allowedGapsEnabled" type="bool" value="false"/>
|
||||
<Option name="allowedGapsLayer" type="QString" value=""/>
|
||||
</Option>
|
||||
</checkConfiguration>
|
||||
</geometryOptions>
|
||||
<legend type="default-vector"/>
|
||||
<referencedLayers/>
|
||||
<fieldConfiguration>
|
||||
<field configurationFlags="None" name="gml_id">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="objectid">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="obj_nr">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="typ">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="text_1">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_objnr">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_hida_n">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_eigenn">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_kreis">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_gemein">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_ortste">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_strass">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_hausnu">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_gemark">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_flurst">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_kchar1">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_kchar2">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_kchar3">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_datier">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="ext_typ">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="gd_ueberar">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="sort">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field configurationFlags="None" name="Stand">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
</fieldConfiguration>
|
||||
<aliases>
|
||||
<alias name="" field="gml_id" index="0"/>
|
||||
<alias name="" field="objectid" index="1"/>
|
||||
<alias name="" field="obj_nr" index="2"/>
|
||||
<alias name="" field="typ" index="3"/>
|
||||
<alias name="" field="text_1" index="4"/>
|
||||
<alias name="" field="ext_objnr" index="5"/>
|
||||
<alias name="" field="ext_hida_n" index="6"/>
|
||||
<alias name="" field="ext_eigenn" index="7"/>
|
||||
<alias name="" field="ext_kreis" index="8"/>
|
||||
<alias name="" field="ext_gemein" index="9"/>
|
||||
<alias name="" field="ext_ortste" index="10"/>
|
||||
<alias name="" field="ext_strass" index="11"/>
|
||||
<alias name="" field="ext_hausnu" index="12"/>
|
||||
<alias name="" field="ext_gemark" index="13"/>
|
||||
<alias name="" field="ext_flurst" index="14"/>
|
||||
<alias name="" field="ext_kchar1" index="15"/>
|
||||
<alias name="" field="ext_kchar2" index="16"/>
|
||||
<alias name="" field="ext_kchar3" index="17"/>
|
||||
<alias name="" field="ext_datier" index="18"/>
|
||||
<alias name="" field="ext_typ" index="19"/>
|
||||
<alias name="" field="gd_ueberar" index="20"/>
|
||||
<alias name="" field="sort" index="21"/>
|
||||
<alias name="" field="Stand" index="22"/>
|
||||
</aliases>
|
||||
<defaults>
|
||||
<default field="gml_id" expression="" applyOnUpdate="0"/>
|
||||
<default field="objectid" expression="" applyOnUpdate="0"/>
|
||||
<default field="obj_nr" expression="" applyOnUpdate="0"/>
|
||||
<default field="typ" expression="" applyOnUpdate="0"/>
|
||||
<default field="text_1" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_objnr" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_hida_n" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_eigenn" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_kreis" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_gemein" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_ortste" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_strass" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_hausnu" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_gemark" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_flurst" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_kchar1" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_kchar2" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_kchar3" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_datier" expression="" applyOnUpdate="0"/>
|
||||
<default field="ext_typ" expression="" applyOnUpdate="0"/>
|
||||
<default field="gd_ueberar" expression="" applyOnUpdate="0"/>
|
||||
<default field="sort" expression="" applyOnUpdate="0"/>
|
||||
<default field="Stand" expression="" applyOnUpdate="0"/>
|
||||
</defaults>
|
||||
<constraints>
|
||||
<constraint exp_strength="0" field="gml_id" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="objectid" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="obj_nr" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="typ" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="text_1" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_objnr" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_hida_n" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_eigenn" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_kreis" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_gemein" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_ortste" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_strass" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_hausnu" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_gemark" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_flurst" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_kchar1" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_kchar2" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_kchar3" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_datier" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="ext_typ" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="gd_ueberar" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="sort" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
<constraint exp_strength="0" field="Stand" unique_strength="0" notnull_strength="0" constraints="0"/>
|
||||
</constraints>
|
||||
<constraintExpressions>
|
||||
<constraint field="gml_id" desc="" exp=""/>
|
||||
<constraint field="objectid" desc="" exp=""/>
|
||||
<constraint field="obj_nr" desc="" exp=""/>
|
||||
<constraint field="typ" desc="" exp=""/>
|
||||
<constraint field="text_1" desc="" exp=""/>
|
||||
<constraint field="ext_objnr" desc="" exp=""/>
|
||||
<constraint field="ext_hida_n" desc="" exp=""/>
|
||||
<constraint field="ext_eigenn" desc="" exp=""/>
|
||||
<constraint field="ext_kreis" desc="" exp=""/>
|
||||
<constraint field="ext_gemein" desc="" exp=""/>
|
||||
<constraint field="ext_ortste" desc="" exp=""/>
|
||||
<constraint field="ext_strass" desc="" exp=""/>
|
||||
<constraint field="ext_hausnu" desc="" exp=""/>
|
||||
<constraint field="ext_gemark" desc="" exp=""/>
|
||||
<constraint field="ext_flurst" desc="" exp=""/>
|
||||
<constraint field="ext_kchar1" desc="" exp=""/>
|
||||
<constraint field="ext_kchar2" desc="" exp=""/>
|
||||
<constraint field="ext_kchar3" desc="" exp=""/>
|
||||
<constraint field="ext_datier" desc="" exp=""/>
|
||||
<constraint field="ext_typ" desc="" exp=""/>
|
||||
<constraint field="gd_ueberar" desc="" exp=""/>
|
||||
<constraint field="sort" desc="" exp=""/>
|
||||
<constraint field="Stand" desc="" exp=""/>
|
||||
</constraintExpressions>
|
||||
<expressionfields/>
|
||||
<attributeactions>
|
||||
<defaultAction key="Canvas" value="{00000000-0000-0000-0000-000000000000}"/>
|
||||
</attributeactions>
|
||||
<attributetableconfig sortOrder="0" actionWidgetStyle="dropDown" sortExpression=""gml_id"">
|
||||
<columns>
|
||||
<column width="-1" name="gml_id" type="field" hidden="0"/>
|
||||
<column width="-1" name="objectid" type="field" hidden="0"/>
|
||||
<column width="-1" name="obj_nr" type="field" hidden="0"/>
|
||||
<column width="-1" name="typ" type="field" hidden="0"/>
|
||||
<column width="-1" name="text_1" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_objnr" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_hida_n" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_eigenn" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_kreis" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_gemein" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_ortste" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_strass" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_hausnu" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_gemark" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_flurst" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_kchar1" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_kchar2" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_kchar3" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_datier" type="field" hidden="0"/>
|
||||
<column width="-1" name="ext_typ" type="field" hidden="0"/>
|
||||
<column width="-1" name="gd_ueberar" type="field" hidden="0"/>
|
||||
<column width="-1" name="sort" type="field" hidden="0"/>
|
||||
<column width="-1" name="Stand" type="field" hidden="0"/>
|
||||
<column width="-1" type="actions" hidden="1"/>
|
||||
</columns>
|
||||
</attributetableconfig>
|
||||
<conditionalstyles>
|
||||
<rowstyles/>
|
||||
<fieldstyles/>
|
||||
</conditionalstyles>
|
||||
<storedexpressions/>
|
||||
<editform tolerant="1"></editform>
|
||||
<editforminit/>
|
||||
<editforminitcodesource>0</editforminitcodesource>
|
||||
<editforminitfilepath></editforminitfilepath>
|
||||
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
|
||||
"""
|
||||
QGIS forms can have a Python function that is called when the form is
|
||||
opened.
|
||||
|
||||
Use this function to add extra logic to your forms.
|
||||
|
||||
Enter the name of the function in the "Python Init function"
|
||||
field.
|
||||
An example follows:
|
||||
"""
|
||||
from qgis.PyQt.QtWidgets import QWidget
|
||||
|
||||
def my_form_open(dialog, layer, feature):
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
]]></editforminitcode>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
<editable>
|
||||
<field name="Stand" editable="1"/>
|
||||
<field name="ext_datier" editable="1"/>
|
||||
<field name="ext_eigenn" editable="1"/>
|
||||
<field name="ext_flurst" editable="1"/>
|
||||
<field name="ext_gemark" editable="1"/>
|
||||
<field name="ext_gemein" editable="1"/>
|
||||
<field name="ext_hausnu" editable="1"/>
|
||||
<field name="ext_hida_n" editable="1"/>
|
||||
<field name="ext_kchar1" editable="1"/>
|
||||
<field name="ext_kchar2" editable="1"/>
|
||||
<field name="ext_kchar3" editable="1"/>
|
||||
<field name="ext_kreis" editable="1"/>
|
||||
<field name="ext_objnr" editable="1"/>
|
||||
<field name="ext_ortste" editable="1"/>
|
||||
<field name="ext_strass" editable="1"/>
|
||||
<field name="ext_typ" editable="1"/>
|
||||
<field name="gd_ueberar" editable="1"/>
|
||||
<field name="gml_id" editable="1"/>
|
||||
<field name="obj_nr" editable="1"/>
|
||||
<field name="objectid" editable="1"/>
|
||||
<field name="sort" editable="1"/>
|
||||
<field name="text_1" editable="1"/>
|
||||
<field name="typ" editable="1"/>
|
||||
</editable>
|
||||
<labelOnTop>
|
||||
<field name="Stand" labelOnTop="0"/>
|
||||
<field name="ext_datier" labelOnTop="0"/>
|
||||
<field name="ext_eigenn" labelOnTop="0"/>
|
||||
<field name="ext_flurst" labelOnTop="0"/>
|
||||
<field name="ext_gemark" labelOnTop="0"/>
|
||||
<field name="ext_gemein" labelOnTop="0"/>
|
||||
<field name="ext_hausnu" labelOnTop="0"/>
|
||||
<field name="ext_hida_n" labelOnTop="0"/>
|
||||
<field name="ext_kchar1" labelOnTop="0"/>
|
||||
<field name="ext_kchar2" labelOnTop="0"/>
|
||||
<field name="ext_kchar3" labelOnTop="0"/>
|
||||
<field name="ext_kreis" labelOnTop="0"/>
|
||||
<field name="ext_objnr" labelOnTop="0"/>
|
||||
<field name="ext_ortste" labelOnTop="0"/>
|
||||
<field name="ext_strass" labelOnTop="0"/>
|
||||
<field name="ext_typ" labelOnTop="0"/>
|
||||
<field name="gd_ueberar" labelOnTop="0"/>
|
||||
<field name="gml_id" labelOnTop="0"/>
|
||||
<field name="obj_nr" labelOnTop="0"/>
|
||||
<field name="objectid" labelOnTop="0"/>
|
||||
<field name="sort" labelOnTop="0"/>
|
||||
<field name="text_1" labelOnTop="0"/>
|
||||
<field name="typ" labelOnTop="0"/>
|
||||
</labelOnTop>
|
||||
<dataDefinedFieldProperties/>
|
||||
<widgets/>
|
||||
<previewExpression>"gml_id"</previewExpression>
|
||||
<mapTip></mapTip>
|
||||
<layerGeometryType>2</layerGeometryType>
|
||||
</qgis>
|
||||
225
styles/GIS_Biotope_F.qml
Normal file
225
styles/GIS_Biotope_F.qml
Normal file
@@ -0,0 +1,225 @@
|
||||
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
|
||||
<qgis version="3.40.7-Bratislava" styleCategories="Symbology">
|
||||
<renderer-v2 forceraster="0" enableorderby="0" referencescale="-1" type="singleSymbol" symbollevels="0">
|
||||
<symbols>
|
||||
<symbol alpha="1" clip_to_extent="1" frame_rate="10" type="fill" force_rhr="0" is_animated="0" name="0">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="name" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" name="type" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer enabled="1" pass="0" id="{ef62a644-15f0-4a1c-aa78-8ae94dc5749c}" class="SimpleFill" locked="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="border_width_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="color" value="0,0,255,255,rgb:0,0,1,1"/>
|
||||
<Option type="QString" name="joinstyle" value="bevel"/>
|
||||
<Option type="QString" name="offset" value="0,0"/>
|
||||
<Option type="QString" name="offset_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="offset_unit" value="MM"/>
|
||||
<Option type="QString" name="outline_color" value="89,89,89,255,rgb:0.34901960784313724,0.34901960784313724,0.34901960784313724,1"/>
|
||||
<Option type="QString" name="outline_style" value="solid"/>
|
||||
<Option type="QString" name="outline_width" value="0.4"/>
|
||||
<Option type="QString" name="outline_width_unit" value="MM"/>
|
||||
<Option type="QString" name="style" value="no"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="name" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" name="type" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
<layer enabled="1" pass="0" id="{4b0f1a3b-14cf-4149-bf17-8f30fa594ef1}" class="LinePatternFill" locked="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="angle" value="0"/>
|
||||
<Option type="QString" name="clip_mode" value="during_render"/>
|
||||
<Option type="QString" name="color" value="255,0,0,255,rgb:1,0,0,1"/>
|
||||
<Option type="QString" name="coordinate_reference" value="feature"/>
|
||||
<Option type="QString" name="distance" value="4"/>
|
||||
<Option type="QString" name="distance_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="distance_unit" value="MM"/>
|
||||
<Option type="QString" name="line_width" value="0.25"/>
|
||||
<Option type="QString" name="line_width_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="line_width_unit" value="Point"/>
|
||||
<Option type="QString" name="offset" value="0"/>
|
||||
<Option type="QString" name="offset_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="offset_unit" value="MM"/>
|
||||
<Option type="QString" name="outline_width_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="outline_width_unit" value="Point"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="name" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" name="type" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<symbol alpha="1" clip_to_extent="1" frame_rate="10" type="line" force_rhr="0" is_animated="0" name="@0@1">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="name" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" name="type" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer enabled="1" pass="0" id="{853c5350-e21e-49ba-a151-7de585769136}" class="SimpleLine" locked="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="align_dash_pattern" value="0"/>
|
||||
<Option type="QString" name="capstyle" value="square"/>
|
||||
<Option type="QString" name="customdash" value="5;2"/>
|
||||
<Option type="QString" name="customdash_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="customdash_unit" value="MM"/>
|
||||
<Option type="QString" name="dash_pattern_offset" value="0"/>
|
||||
<Option type="QString" name="dash_pattern_offset_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="dash_pattern_offset_unit" value="MM"/>
|
||||
<Option type="QString" name="draw_inside_polygon" value="0"/>
|
||||
<Option type="QString" name="joinstyle" value="bevel"/>
|
||||
<Option type="QString" name="line_color" value="0,0,0,255,rgb:0,0,0,1"/>
|
||||
<Option type="QString" name="line_style" value="solid"/>
|
||||
<Option type="QString" name="line_width" value="0.3"/>
|
||||
<Option type="QString" name="line_width_unit" value="MM"/>
|
||||
<Option type="QString" name="offset" value="0"/>
|
||||
<Option type="QString" name="offset_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="offset_unit" value="MM"/>
|
||||
<Option type="QString" name="ring_filter" value="0"/>
|
||||
<Option type="QString" name="trim_distance_end" value="0"/>
|
||||
<Option type="QString" name="trim_distance_end_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="trim_distance_end_unit" value="MM"/>
|
||||
<Option type="QString" name="trim_distance_start" value="0"/>
|
||||
<Option type="QString" name="trim_distance_start_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="trim_distance_start_unit" value="MM"/>
|
||||
<Option type="QString" name="tweak_dash_pattern_on_corners" value="0"/>
|
||||
<Option type="QString" name="use_custom_dash" value="0"/>
|
||||
<Option type="QString" name="width_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="name" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" name="type" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</layer>
|
||||
<layer enabled="1" pass="0" id="{8675ccd2-9bf1-447f-9cc7-f95b932972f6}" class="MarkerLine" locked="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="average_angle_length" value="4"/>
|
||||
<Option type="QString" name="average_angle_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="average_angle_unit" value="MM"/>
|
||||
<Option type="QString" name="interval" value="5"/>
|
||||
<Option type="QString" name="interval_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="interval_unit" value="MM"/>
|
||||
<Option type="QString" name="offset" value="0"/>
|
||||
<Option type="QString" name="offset_along_line" value="0"/>
|
||||
<Option type="QString" name="offset_along_line_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="offset_along_line_unit" value="MM"/>
|
||||
<Option type="QString" name="offset_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="offset_unit" value="MM"/>
|
||||
<Option type="bool" name="place_on_every_part" value="true"/>
|
||||
<Option type="QString" name="placements" value="Interval"/>
|
||||
<Option type="QString" name="ring_filter" value="0"/>
|
||||
<Option type="QString" name="rotate" value="1"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="name" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" name="type" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<symbol alpha="1" clip_to_extent="1" frame_rate="10" type="marker" force_rhr="0" is_animated="0" name="@0@2">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="name" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" name="type" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer enabled="1" pass="0" id="{3260c32a-e9bb-45db-8ef8-3abb54ae868e}" class="SimpleMarker" locked="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="angle" value="270"/>
|
||||
<Option type="QString" name="cap_style" value="square"/>
|
||||
<Option type="QString" name="color" value="255,0,0,255,rgb:1,0,0,1"/>
|
||||
<Option type="QString" name="horizontal_anchor_point" value="1"/>
|
||||
<Option type="QString" name="joinstyle" value="bevel"/>
|
||||
<Option type="QString" name="name" value="arrowhead"/>
|
||||
<Option type="QString" name="offset" value="-0.29999999999999999,0"/>
|
||||
<Option type="QString" name="offset_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="offset_unit" value="MM"/>
|
||||
<Option type="QString" name="outline_color" value="89,89,89,255,rgb:0.34901960784313724,0.34901960784313724,0.34901960784313724,1"/>
|
||||
<Option type="QString" name="outline_style" value="solid"/>
|
||||
<Option type="QString" name="outline_width" value="0.3"/>
|
||||
<Option type="QString" name="outline_width_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="outline_width_unit" value="MM"/>
|
||||
<Option type="QString" name="scale_method" value="diameter"/>
|
||||
<Option type="QString" name="size" value="1.5"/>
|
||||
<Option type="QString" name="size_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="size_unit" value="MM"/>
|
||||
<Option type="QString" name="vertical_anchor_point" value="1"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="name" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" name="type" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</layer>
|
||||
</symbol>
|
||||
</symbols>
|
||||
<rotation/>
|
||||
<sizescale/>
|
||||
<data-defined-properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="name" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" name="type" value="collection"/>
|
||||
</Option>
|
||||
</data-defined-properties>
|
||||
</renderer-v2>
|
||||
<selection mode="Default">
|
||||
<selectionColor invalid="1"/>
|
||||
<selectionSymbol>
|
||||
<symbol alpha="1" clip_to_extent="1" frame_rate="10" type="fill" force_rhr="0" is_animated="0" name="">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="name" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" name="type" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer enabled="1" pass="0" id="{fc42b18b-5949-4fd5-b614-0205e0f7d69c}" class="SimpleFill" locked="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="border_width_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="color" value="0,0,255,255,rgb:0,0,1,1"/>
|
||||
<Option type="QString" name="joinstyle" value="bevel"/>
|
||||
<Option type="QString" name="offset" value="0,0"/>
|
||||
<Option type="QString" name="offset_map_unit_scale" value="3x:0,0,0,0,0,0"/>
|
||||
<Option type="QString" name="offset_unit" value="MM"/>
|
||||
<Option type="QString" name="outline_color" value="35,35,35,255,rgb:0.13725490196078433,0.13725490196078433,0.13725490196078433,1"/>
|
||||
<Option type="QString" name="outline_style" value="solid"/>
|
||||
<Option type="QString" name="outline_width" value="0.26"/>
|
||||
<Option type="QString" name="outline_width_unit" value="MM"/>
|
||||
<Option type="QString" name="style" value="solid"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" name="name" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" name="type" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</selectionSymbol>
|
||||
</selection>
|
||||
<blendMode>0</blendMode>
|
||||
<featureBlendMode>0</featureBlendMode>
|
||||
<layerGeometryType>2</layerGeometryType>
|
||||
</qgis>
|
||||
349
styles/GIS_Flst_Beschriftung_ALKIS_NAS.qml
Normal file
349
styles/GIS_Flst_Beschriftung_ALKIS_NAS.qml
Normal file
@@ -0,0 +1,349 @@
|
||||
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
|
||||
<qgis labelsEnabled="1" version="3.40.4-Bratislava" styleCategories="Symbology|Labeling">
|
||||
<renderer-v2 enableorderby="0" type="singleSymbol" referencescale="-1" forceraster="0" symbollevels="0">
|
||||
<symbols>
|
||||
<symbol name="0" type="fill" force_rhr="0" clip_to_extent="1" is_animated="0" frame_rate="10" alpha="1">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer id="{bc287a30-ef97-44d4-ac42-1890985a8e6e}" class="SimpleFill" locked="0" enabled="1" pass="0">
|
||||
<Option type="Map">
|
||||
<Option name="border_width_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="color" type="QString" value="229,182,54,255,rgb:0.89803921568627454,0.71372549019607845,0.21176470588235294,1"/>
|
||||
<Option name="joinstyle" type="QString" value="bevel"/>
|
||||
<Option name="offset" type="QString" value="0,0"/>
|
||||
<Option name="offset_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="offset_unit" type="QString" value="MM"/>
|
||||
<Option name="outline_color" type="QString" value="35,35,35,255,rgb:0.13725490196078433,0.13725490196078433,0.13725490196078433,1"/>
|
||||
<Option name="outline_style" type="QString" value="solid"/>
|
||||
<Option name="outline_width" type="QString" value="0.5"/>
|
||||
<Option name="outline_width_unit" type="QString" value="MM"/>
|
||||
<Option name="style" type="QString" value="no"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</symbols>
|
||||
<rotation/>
|
||||
<sizescale/>
|
||||
<data-defined-properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data-defined-properties>
|
||||
</renderer-v2>
|
||||
<selection mode="Default">
|
||||
<selectionColor invalid="1"/>
|
||||
<selectionSymbol>
|
||||
<symbol name="" type="fill" force_rhr="0" clip_to_extent="1" is_animated="0" frame_rate="10" alpha="1">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer id="{819785db-4b31-4c4c-8332-821c09f81921}" class="SimpleFill" locked="0" enabled="1" pass="0">
|
||||
<Option type="Map">
|
||||
<Option name="border_width_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="color" type="QString" value="0,0,255,255,rgb:0,0,1,1"/>
|
||||
<Option name="joinstyle" type="QString" value="bevel"/>
|
||||
<Option name="offset" type="QString" value="0,0"/>
|
||||
<Option name="offset_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="offset_unit" type="QString" value="MM"/>
|
||||
<Option name="outline_color" type="QString" value="35,35,35,255,rgb:0.13725490196078433,0.13725490196078433,0.13725490196078433,1"/>
|
||||
<Option name="outline_style" type="QString" value="solid"/>
|
||||
<Option name="outline_width" type="QString" value="0.26"/>
|
||||
<Option name="outline_width_unit" type="QString" value="MM"/>
|
||||
<Option name="style" type="QString" value="solid"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</selectionSymbol>
|
||||
</selection>
|
||||
<labeling type="rule-based">
|
||||
<rules key="{15ec465c-d050-4a64-b4ba-262af80bbb43}">
|
||||
<rule key="{b56520a8-9937-40dd-b8fe-c4386271088d}" filter=""flurstuecksnummer_ax_flurstuecksnummer_nenner" IS NULL" description="FlstNr_ohne_Zusatz">
|
||||
<settings calloutType="simple">
|
||||
<text-style forcedItalic="0" fontUnderline="0" previewBkgrdColor="255,255,255,255,rgb:1,1,1,1" fontItalic="0" tabStopDistanceUnit="Point" textOpacity="1" multilineHeight="1" fontFamily="Times New Roman" fontStrikeout="0" capitalization="0" fieldName="flurstuecksnummer_ax_flurstuecksnummer_zaehler" legendString="Aa" fontSizeUnit="Point" fontWeight="50" textOrientation="horizontal" multilineHeightUnit="Percentage" fontKerning="1" tabStopDistanceMapUnitScale="3x:0,0,0,0,0,0" forcedBold="0" fontWordSpacing="0" fontLetterSpacing="0" fontSizeMapUnitScale="3x:0,0,0,0,0,0" allowHtml="0" isExpression="0" useSubstitutions="0" textColor="0,0,0,255,rgb:0,0,0,1" blendMode="0" fontSize="7" namedStyle="Standard" tabStopDistance="80">
|
||||
<families/>
|
||||
<text-buffer bufferBlendMode="0" bufferSizeUnits="MM" bufferOpacity="1" bufferJoinStyle="128" bufferNoFill="1" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferDraw="1" bufferColor="255,255,255,255,rgb:1,1,1,1" bufferSize="1"/>
|
||||
<text-mask maskEnabled="0" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskSizeUnits="MM" maskJoinStyle="128" maskSize2="1.5" maskSize="1.5" maskOpacity="1" maskType="0" maskedSymbolLayers=""/>
|
||||
<background shapeOffsetX="0" shapeRadiiY="0" shapeSVGFile="" shapeRotation="0" shapeBorderWidth="0" shapeRadiiX="0" shapeSizeX="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeSizeUnit="MM" shapeRotationType="0" shapeBorderColor="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1" shapeJoinStyle="64" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeType="0" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeDraw="0" shapeBorderWidthUnit="MM" shapeFillColor="255,255,255,255,rgb:1,1,1,1" shapeOffsetUnit="MM" shapeRadiiUnit="MM" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeOffsetY="0" shapeBlendMode="0" shapeSizeType="0" shapeSizeY="0" shapeOpacity="1">
|
||||
<symbol name="markerSymbol" type="marker" force_rhr="0" clip_to_extent="1" is_animated="0" frame_rate="10" alpha="1">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer id="" class="SimpleMarker" locked="0" enabled="1" pass="0">
|
||||
<Option type="Map">
|
||||
<Option name="angle" type="QString" value="0"/>
|
||||
<Option name="cap_style" type="QString" value="square"/>
|
||||
<Option name="color" type="QString" value="141,90,153,255,rgb:0.55294117647058827,0.35294117647058826,0.59999999999999998,1"/>
|
||||
<Option name="horizontal_anchor_point" type="QString" value="1"/>
|
||||
<Option name="joinstyle" type="QString" value="bevel"/>
|
||||
<Option name="name" type="QString" value="circle"/>
|
||||
<Option name="offset" type="QString" value="0,0"/>
|
||||
<Option name="offset_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="offset_unit" type="QString" value="MM"/>
|
||||
<Option name="outline_color" type="QString" value="35,35,35,255,rgb:0.13725490196078433,0.13725490196078433,0.13725490196078433,1"/>
|
||||
<Option name="outline_style" type="QString" value="solid"/>
|
||||
<Option name="outline_width" type="QString" value="0"/>
|
||||
<Option name="outline_width_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="outline_width_unit" type="QString" value="MM"/>
|
||||
<Option name="scale_method" type="QString" value="diameter"/>
|
||||
<Option name="size" type="QString" value="2"/>
|
||||
<Option name="size_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="size_unit" type="QString" value="MM"/>
|
||||
<Option name="vertical_anchor_point" type="QString" value="1"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
<symbol name="fillSymbol" type="fill" force_rhr="0" clip_to_extent="1" is_animated="0" frame_rate="10" alpha="1">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer id="" class="SimpleFill" locked="0" enabled="1" pass="0">
|
||||
<Option type="Map">
|
||||
<Option name="border_width_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="color" type="QString" value="255,255,255,255,rgb:1,1,1,1"/>
|
||||
<Option name="joinstyle" type="QString" value="bevel"/>
|
||||
<Option name="offset" type="QString" value="0,0"/>
|
||||
<Option name="offset_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="offset_unit" type="QString" value="MM"/>
|
||||
<Option name="outline_color" type="QString" value="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1"/>
|
||||
<Option name="outline_style" type="QString" value="no"/>
|
||||
<Option name="outline_width" type="QString" value="0"/>
|
||||
<Option name="outline_width_unit" type="QString" value="MM"/>
|
||||
<Option name="style" type="QString" value="solid"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</background>
|
||||
<shadow shadowRadiusAlphaOnly="0" shadowOffsetAngle="135" shadowOpacity="0.69999999999999996" shadowOffsetUnit="MM" shadowColor="0,0,0,255,rgb:0,0,0,1" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowRadius="1.5" shadowBlendMode="6" shadowScale="100" shadowDraw="0" shadowUnder="0" shadowOffsetDist="1" shadowRadiusUnit="MM" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowOffsetGlobal="1"/>
|
||||
<dd_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</dd_properties>
|
||||
<substitutions/>
|
||||
</text-style>
|
||||
<text-format multilineAlign="3" autoWrapLength="0" reverseDirectionSymbol="0" plussign="0" rightDirectionSymbol=">" addDirectionSymbol="0" leftDirectionSymbol="<" formatNumbers="0" decimals="3" placeDirectionSymbol="0" wrapChar="" useMaxLineLengthForAutoWrap="1"/>
|
||||
<placement lineAnchorClipping="0" maximumDistanceMapUnitScale="3x:0,0,0,0,0,0" xOffset="0" maximumDistance="0" geometryGenerator="" distMapUnitScale="3x:0,0,0,0,0,0" predefinedPositionOrder="TR,TL,BR,BL,R,L,TSR,BSR" layerType="PolygonGeometry" lineAnchorPercent="0.5" rotationUnit="AngleDegrees" repeatDistanceMapUnitScale="3x:0,0,0,0,0,0" priority="9" yOffset="0" quadOffset="4" polygonPlacementFlags="2" centroidInside="1" placement="1" placementFlags="10" prioritization="PreferCloser" overrunDistance="0" offsetUnits="MM" maxCurvedCharAngleOut="-25" preserveRotation="1" lineAnchorTextPoint="CenterOfText" overlapHandling="PreventOverlap" rotationAngle="0" repeatDistance="0" offsetType="0" distUnits="MM" allowDegraded="0" overrunDistanceUnit="MM" centroidWhole="0" geometryGeneratorType="PointGeometry" fitInPolygonOnly="0" geometryGeneratorEnabled="0" dist="0" maxCurvedCharAngleIn="25" overrunDistanceMapUnitScale="3x:0,0,0,0,0,0" maximumDistanceUnit="MM" lineAnchorType="0" repeatDistanceUnits="MM" labelOffsetMapUnitScale="3x:0,0,0,0,0,0"/>
|
||||
<rendering fontMinPixelSize="3" fontMaxPixelSize="10000" maxNumLabels="2000" obstacleFactor="1" mergeLines="0" fontLimitPixelSize="0" limitNumLabels="0" minFeatureSize="0" scaleMin="0" scaleVisibility="0" labelPerPart="0" scaleMax="0" obstacleType="1" upsidedownLabels="0" drawLabels="1" zIndex="0" unplacedVisibility="0" obstacle="1"/>
|
||||
<dd_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</dd_properties>
|
||||
<callout type="simple">
|
||||
<Option type="Map">
|
||||
<Option name="anchorPoint" type="QString" value="centroid"/>
|
||||
<Option name="blendMode" type="int" value="0"/>
|
||||
<Option name="ddProperties" type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
<Option name="drawToAllParts" type="bool" value="false"/>
|
||||
<Option name="enabled" type="QString" value="1"/>
|
||||
<Option name="labelAnchorPoint" type="QString" value="point_on_exterior"/>
|
||||
<Option name="lineSymbol" type="QString" value="<symbol name="symbol" type="line" force_rhr="0" clip_to_extent="1" is_animated="0" frame_rate="10" alpha="1"><data_defined_properties><Option type="Map"><Option name="name" type="QString" value=""/><Option name="properties"/><Option name="type" type="QString" value="collection"/></Option></data_defined_properties><layer id="{3356d22c-5f69-4911-8e91-fcf32e8243fa}" class="SimpleLine" locked="0" enabled="1" pass="0"><Option type="Map"><Option name="align_dash_pattern" type="QString" value="0"/><Option name="capstyle" type="QString" value="square"/><Option name="customdash" type="QString" value="5;2"/><Option name="customdash_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/><Option name="customdash_unit" type="QString" value="MM"/><Option name="dash_pattern_offset" type="QString" value="0"/><Option name="dash_pattern_offset_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/><Option name="dash_pattern_offset_unit" type="QString" value="MM"/><Option name="draw_inside_polygon" type="QString" value="0"/><Option name="joinstyle" type="QString" value="bevel"/><Option name="line_color" type="QString" value="60,60,60,255,rgb:0.23529411764705882,0.23529411764705882,0.23529411764705882,1"/><Option name="line_style" type="QString" value="solid"/><Option name="line_width" type="QString" value="0.3"/><Option name="line_width_unit" type="QString" value="MM"/><Option name="offset" type="QString" value="0"/><Option name="offset_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/><Option name="offset_unit" type="QString" value="MM"/><Option name="ring_filter" type="QString" value="0"/><Option name="trim_distance_end" type="QString" value="0"/><Option name="trim_distance_end_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/><Option name="trim_distance_end_unit" type="QString" value="MM"/><Option name="trim_distance_start" type="QString" value="0"/><Option name="trim_distance_start_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/><Option name="trim_distance_start_unit" type="QString" value="MM"/><Option name="tweak_dash_pattern_on_corners" type="QString" value="0"/><Option name="use_custom_dash" type="QString" value="0"/><Option name="width_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/></Option><data_defined_properties><Option type="Map"><Option name="name" type="QString" value=""/><Option name="properties"/><Option name="type" type="QString" value="collection"/></Option></data_defined_properties></layer></symbol>"/>
|
||||
<Option name="minLength" type="double" value="0"/>
|
||||
<Option name="minLengthMapUnitScale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="minLengthUnit" type="QString" value="MM"/>
|
||||
<Option name="offsetFromAnchor" type="double" value="0"/>
|
||||
<Option name="offsetFromAnchorMapUnitScale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="offsetFromAnchorUnit" type="QString" value="MM"/>
|
||||
<Option name="offsetFromLabel" type="double" value="0"/>
|
||||
<Option name="offsetFromLabelMapUnitScale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="offsetFromLabelUnit" type="QString" value="MM"/>
|
||||
</Option>
|
||||
</callout>
|
||||
</settings>
|
||||
</rule>
|
||||
<rule key="{a9800348-c55c-45d0-95ce-be6db84663c8}" filter=""flurstuecksnummer_ax_flurstuecksnummer_nenner" IS NOT NULL" description="Flst_num_Zusatz">
|
||||
<settings calloutType="simple">
|
||||
<text-style forcedItalic="0" fontUnderline="0" previewBkgrdColor="255,255,255,255,rgb:1,1,1,1" fontItalic="0" tabStopDistanceUnit="Point" textOpacity="1" multilineHeight="1" fontFamily="Times New Roman" fontStrikeout="0" capitalization="0" fieldName=""flurstuecksnummer_ax_flurstuecksnummer_zaehler" || '\n' || "flurstuecksnummer_ax_flurstuecksnummer_nenner" " legendString="Aa" fontSizeUnit="Point" fontWeight="50" textOrientation="horizontal" multilineHeightUnit="Percentage" fontKerning="1" tabStopDistanceMapUnitScale="3x:0,0,0,0,0,0" forcedBold="0" fontWordSpacing="0" fontLetterSpacing="0" fontSizeMapUnitScale="3x:0,0,0,0,0,0" allowHtml="0" isExpression="1" useSubstitutions="0" textColor="0,0,0,255,rgb:0,0,0,1" blendMode="0" fontSize="7" namedStyle="Standard" tabStopDistance="80">
|
||||
<families/>
|
||||
<text-buffer bufferBlendMode="0" bufferSizeUnits="MM" bufferOpacity="1" bufferJoinStyle="128" bufferNoFill="1" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferDraw="1" bufferColor="255,255,255,255,rgb:1,1,1,1" bufferSize="0.5"/>
|
||||
<text-mask maskEnabled="0" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskSizeUnits="MM" maskJoinStyle="128" maskSize2="1.5" maskSize="1.5" maskOpacity="1" maskType="0" maskedSymbolLayers=""/>
|
||||
<background shapeOffsetX="0" shapeRadiiY="0" shapeSVGFile="" shapeRotation="0" shapeBorderWidth="0" shapeRadiiX="0" shapeSizeX="4" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeSizeUnit="MM" shapeRotationType="0" shapeBorderColor="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1" shapeJoinStyle="64" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeType="5" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeDraw="1" shapeBorderWidthUnit="MM" shapeFillColor="255,255,255,255,rgb:1,1,1,1" shapeOffsetUnit="MM" shapeRadiiUnit="MM" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeOffsetY="0" shapeBlendMode="0" shapeSizeType="1" shapeSizeY="0" shapeOpacity="1">
|
||||
<symbol name="markerSymbol" type="marker" force_rhr="0" clip_to_extent="1" is_animated="0" frame_rate="10" alpha="1">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer id="" class="SimpleMarker" locked="0" enabled="1" pass="0">
|
||||
<Option type="Map">
|
||||
<Option name="angle" type="QString" value="90"/>
|
||||
<Option name="cap_style" type="QString" value="square"/>
|
||||
<Option name="color" type="QString" value="255,158,23,255,rgb:1,0.61960784313725492,0.09019607843137255,1"/>
|
||||
<Option name="horizontal_anchor_point" type="QString" value="1"/>
|
||||
<Option name="joinstyle" type="QString" value="bevel"/>
|
||||
<Option name="name" type="QString" value="line"/>
|
||||
<Option name="offset" type="QString" value="0,0"/>
|
||||
<Option name="offset_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="offset_unit" type="QString" value="MM"/>
|
||||
<Option name="outline_color" type="QString" value="35,35,35,255,rgb:0.13725490196078433,0.13725490196078433,0.13725490196078433,1"/>
|
||||
<Option name="outline_style" type="QString" value="solid"/>
|
||||
<Option name="outline_width" type="QString" value="0.3"/>
|
||||
<Option name="outline_width_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="outline_width_unit" type="QString" value="MM"/>
|
||||
<Option name="scale_method" type="QString" value="diameter"/>
|
||||
<Option name="size" type="QString" value="4"/>
|
||||
<Option name="size_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="size_unit" type="QString" value="MM"/>
|
||||
<Option name="vertical_anchor_point" type="QString" value="1"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
<symbol name="fillSymbol" type="fill" force_rhr="0" clip_to_extent="1" is_animated="0" frame_rate="10" alpha="1">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer id="" class="SimpleFill" locked="0" enabled="1" pass="0">
|
||||
<Option type="Map">
|
||||
<Option name="border_width_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="color" type="QString" value="255,255,255,255,rgb:1,1,1,1"/>
|
||||
<Option name="joinstyle" type="QString" value="bevel"/>
|
||||
<Option name="offset" type="QString" value="0,0"/>
|
||||
<Option name="offset_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="offset_unit" type="QString" value="MM"/>
|
||||
<Option name="outline_color" type="QString" value="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1"/>
|
||||
<Option name="outline_style" type="QString" value="no"/>
|
||||
<Option name="outline_width" type="QString" value="0"/>
|
||||
<Option name="outline_width_unit" type="QString" value="MM"/>
|
||||
<Option name="style" type="QString" value="solid"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</background>
|
||||
<shadow shadowRadiusAlphaOnly="0" shadowOffsetAngle="135" shadowOpacity="0.69999999999999996" shadowOffsetUnit="MM" shadowColor="0,0,0,255,rgb:0,0,0,1" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowRadius="1.5" shadowBlendMode="6" shadowScale="100" shadowDraw="0" shadowUnder="0" shadowOffsetDist="1" shadowRadiusUnit="MM" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowOffsetGlobal="1"/>
|
||||
<dd_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</dd_properties>
|
||||
<substitutions/>
|
||||
</text-style>
|
||||
<text-format multilineAlign="3" autoWrapLength="0" reverseDirectionSymbol="0" plussign="0" rightDirectionSymbol=">" addDirectionSymbol="0" leftDirectionSymbol="<" formatNumbers="0" decimals="3" placeDirectionSymbol="0" wrapChar="" useMaxLineLengthForAutoWrap="1"/>
|
||||
<placement lineAnchorClipping="0" maximumDistanceMapUnitScale="3x:0,0,0,0,0,0" xOffset="0" maximumDistance="0" geometryGenerator="" distMapUnitScale="3x:0,0,0,0,0,0" predefinedPositionOrder="TR,TL,BR,BL,R,L,TSR,BSR" layerType="PolygonGeometry" lineAnchorPercent="0.5" rotationUnit="AngleDegrees" repeatDistanceMapUnitScale="3x:0,0,0,0,0,0" priority="5" yOffset="0" quadOffset="4" polygonPlacementFlags="2" centroidInside="1" placement="1" placementFlags="10" prioritization="PreferCloser" overrunDistance="0" offsetUnits="MM" maxCurvedCharAngleOut="-25" preserveRotation="1" lineAnchorTextPoint="CenterOfText" overlapHandling="PreventOverlap" rotationAngle="0" repeatDistance="0" offsetType="0" distUnits="MM" allowDegraded="0" overrunDistanceUnit="MM" centroidWhole="0" geometryGeneratorType="PointGeometry" fitInPolygonOnly="0" geometryGeneratorEnabled="0" dist="0" maxCurvedCharAngleIn="25" overrunDistanceMapUnitScale="3x:0,0,0,0,0,0" maximumDistanceUnit="MM" lineAnchorType="0" repeatDistanceUnits="MM" labelOffsetMapUnitScale="3x:0,0,0,0,0,0"/>
|
||||
<rendering fontMinPixelSize="3" fontMaxPixelSize="10000" maxNumLabels="2000" obstacleFactor="1" mergeLines="0" fontLimitPixelSize="0" limitNumLabels="0" minFeatureSize="0" scaleMin="0" scaleVisibility="0" labelPerPart="0" scaleMax="0" obstacleType="1" upsidedownLabels="0" drawLabels="1" zIndex="0" unplacedVisibility="0" obstacle="1"/>
|
||||
<dd_properties>
|
||||
<Option type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties" type="Map">
|
||||
<Option name="FontStyle" type="Map">
|
||||
<Option name="active" type="bool" value="false"/>
|
||||
<Option name="field" type="QString" value="flstnrzae"/>
|
||||
<Option name="type" type="int" value="2"/>
|
||||
</Option>
|
||||
<Option name="Underline" type="Map">
|
||||
<Option name="active" type="bool" value="false"/>
|
||||
<Option name="field" type="QString" value="flstnrzae"/>
|
||||
<Option name="type" type="int" value="2"/>
|
||||
</Option>
|
||||
</Option>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
</dd_properties>
|
||||
<callout type="simple">
|
||||
<Option type="Map">
|
||||
<Option name="anchorPoint" type="QString" value="pole_of_inaccessibility"/>
|
||||
<Option name="blendMode" type="int" value="0"/>
|
||||
<Option name="ddProperties" type="Map">
|
||||
<Option name="name" type="QString" value=""/>
|
||||
<Option name="properties"/>
|
||||
<Option name="type" type="QString" value="collection"/>
|
||||
</Option>
|
||||
<Option name="drawToAllParts" type="bool" value="false"/>
|
||||
<Option name="enabled" type="QString" value="0"/>
|
||||
<Option name="labelAnchorPoint" type="QString" value="point_on_exterior"/>
|
||||
<Option name="lineSymbol" type="QString" value="<symbol name="symbol" type="line" force_rhr="0" clip_to_extent="1" is_animated="0" frame_rate="10" alpha="1"><data_defined_properties><Option type="Map"><Option name="name" type="QString" value=""/><Option name="properties"/><Option name="type" type="QString" value="collection"/></Option></data_defined_properties><layer id="{0a6da4bc-e8f1-4ec2-8062-844ead072d33}" class="SimpleLine" locked="0" enabled="1" pass="0"><Option type="Map"><Option name="align_dash_pattern" type="QString" value="0"/><Option name="capstyle" type="QString" value="square"/><Option name="customdash" type="QString" value="5;2"/><Option name="customdash_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/><Option name="customdash_unit" type="QString" value="MM"/><Option name="dash_pattern_offset" type="QString" value="0"/><Option name="dash_pattern_offset_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/><Option name="dash_pattern_offset_unit" type="QString" value="MM"/><Option name="draw_inside_polygon" type="QString" value="0"/><Option name="joinstyle" type="QString" value="bevel"/><Option name="line_color" type="QString" value="60,60,60,255,rgb:0.23529411764705882,0.23529411764705882,0.23529411764705882,1"/><Option name="line_style" type="QString" value="solid"/><Option name="line_width" type="QString" value="0.3"/><Option name="line_width_unit" type="QString" value="MM"/><Option name="offset" type="QString" value="0"/><Option name="offset_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/><Option name="offset_unit" type="QString" value="MM"/><Option name="ring_filter" type="QString" value="0"/><Option name="trim_distance_end" type="QString" value="0"/><Option name="trim_distance_end_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/><Option name="trim_distance_end_unit" type="QString" value="MM"/><Option name="trim_distance_start" type="QString" value="0"/><Option name="trim_distance_start_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/><Option name="trim_distance_start_unit" type="QString" value="MM"/><Option name="tweak_dash_pattern_on_corners" type="QString" value="0"/><Option name="use_custom_dash" type="QString" value="0"/><Option name="width_map_unit_scale" type="QString" value="3x:0,0,0,0,0,0"/></Option><data_defined_properties><Option type="Map"><Option name="name" type="QString" value=""/><Option name="properties"/><Option name="type" type="QString" value="collection"/></Option></data_defined_properties></layer></symbol>"/>
|
||||
<Option name="minLength" type="double" value="0"/>
|
||||
<Option name="minLengthMapUnitScale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="minLengthUnit" type="QString" value="MM"/>
|
||||
<Option name="offsetFromAnchor" type="double" value="0"/>
|
||||
<Option name="offsetFromAnchorMapUnitScale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="offsetFromAnchorUnit" type="QString" value="MM"/>
|
||||
<Option name="offsetFromLabel" type="double" value="0"/>
|
||||
<Option name="offsetFromLabelMapUnitScale" type="QString" value="3x:0,0,0,0,0,0"/>
|
||||
<Option name="offsetFromLabelUnit" type="QString" value="MM"/>
|
||||
</Option>
|
||||
</callout>
|
||||
</settings>
|
||||
</rule>
|
||||
</rules>
|
||||
</labeling>
|
||||
<blendMode>0</blendMode>
|
||||
<featureBlendMode>0</featureBlendMode>
|
||||
<layerGeometryType>2</layerGeometryType>
|
||||
</qgis>
|
||||
371
styles/GIS_LfULG_LSG.qml
Normal file
371
styles/GIS_LfULG_LSG.qml
Normal file
@@ -0,0 +1,371 @@
|
||||
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
|
||||
<qgis styleCategories="Symbology" version="3.40.7-Bratislava">
|
||||
<renderer-v2 type="singleSymbol" forceraster="0" enableorderby="0" symbollevels="0" referencescale="-1">
|
||||
<symbols>
|
||||
<symbol type="fill" force_rhr="0" is_animated="0" frame_rate="10" name="0" alpha="1" clip_to_extent="1">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer class="MarkerLine" id="{edf1fe5f-96c0-427c-ac7b-b04c95e0da9c}" enabled="1" locked="0" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="4" name="average_angle_length"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="average_angle_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="average_angle_unit"/>
|
||||
<Option type="QString" value="5" name="interval"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="interval_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="interval_unit"/>
|
||||
<Option type="QString" value="0" name="offset"/>
|
||||
<Option type="QString" value="0" name="offset_along_line"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_along_line_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="offset_along_line_unit"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="Pixel" name="offset_unit"/>
|
||||
<Option type="bool" value="true" name="place_on_every_part"/>
|
||||
<Option type="QString" value="Interval" name="placements"/>
|
||||
<Option type="QString" value="1" name="ring_filter"/>
|
||||
<Option type="QString" value="1" name="rotate"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<symbol type="marker" force_rhr="0" is_animated="0" frame_rate="10" name="@0@0" alpha="1" clip_to_extent="1">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer class="SimpleMarker" id="{857cb357-9b68-40ea-9e9f-edbdbd7de638}" enabled="1" locked="0" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="90" name="angle"/>
|
||||
<Option type="QString" value="square" name="cap_style"/>
|
||||
<Option type="QString" value="255,0,0,255,rgb:1,0,0,1" name="color"/>
|
||||
<Option type="QString" value="1" name="horizontal_anchor_point"/>
|
||||
<Option type="QString" value="bevel" name="joinstyle"/>
|
||||
<Option type="QString" value="line" name="name"/>
|
||||
<Option type="QString" value="1.99999999999999978,-1.5" name="offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="offset_unit"/>
|
||||
<Option type="QString" value="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1" name="outline_color"/>
|
||||
<Option type="QString" value="solid" name="outline_style"/>
|
||||
<Option type="QString" value="0.5" name="outline_width"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="outline_width_unit"/>
|
||||
<Option type="QString" value="diameter" name="scale_method"/>
|
||||
<Option type="QString" value="3" name="size"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="size_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="size_unit"/>
|
||||
<Option type="QString" value="1" name="vertical_anchor_point"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
<layer class="SimpleMarker" id="{8da6ec0d-bd1d-4942-8241-be9e412a4ecd}" enabled="1" locked="0" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="0" name="angle"/>
|
||||
<Option type="QString" value="square" name="cap_style"/>
|
||||
<Option type="QString" value="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1" name="color"/>
|
||||
<Option type="QString" value="1" name="horizontal_anchor_point"/>
|
||||
<Option type="QString" value="bevel" name="joinstyle"/>
|
||||
<Option type="QString" value="line" name="name"/>
|
||||
<Option type="QString" value="3,1" name="offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="offset_unit"/>
|
||||
<Option type="QString" value="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1" name="outline_color"/>
|
||||
<Option type="QString" value="solid" name="outline_style"/>
|
||||
<Option type="QString" value="0.5" name="outline_width"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="outline_width_unit"/>
|
||||
<Option type="QString" value="diameter" name="scale_method"/>
|
||||
<Option type="QString" value="2" name="size"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="size_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="size_unit"/>
|
||||
<Option type="QString" value="1" name="vertical_anchor_point"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
<layer class="SimpleMarker" id="{cf06f0f3-27d8-4b64-b56f-6bda0ed8508c}" enabled="1" locked="0" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="0" name="angle"/>
|
||||
<Option type="QString" value="square" name="cap_style"/>
|
||||
<Option type="QString" value="255,0,0,255,rgb:1,0,0,1" name="color"/>
|
||||
<Option type="QString" value="1" name="horizontal_anchor_point"/>
|
||||
<Option type="QString" value="bevel" name="joinstyle"/>
|
||||
<Option type="QString" value="line" name="name"/>
|
||||
<Option type="QString" value="2,1" name="offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="offset_unit"/>
|
||||
<Option type="QString" value="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1" name="outline_color"/>
|
||||
<Option type="QString" value="solid" name="outline_style"/>
|
||||
<Option type="QString" value="0.5" name="outline_width"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="outline_width_unit"/>
|
||||
<Option type="QString" value="diameter" name="scale_method"/>
|
||||
<Option type="QString" value="2" name="size"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="size_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="size_unit"/>
|
||||
<Option type="QString" value="1" name="vertical_anchor_point"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
<layer class="SimpleMarker" id="{0f1b9591-1b5b-4e8a-8353-c0a7caaf7b21}" enabled="1" locked="0" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="0" name="angle"/>
|
||||
<Option type="QString" value="square" name="cap_style"/>
|
||||
<Option type="QString" value="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1" name="color"/>
|
||||
<Option type="QString" value="1" name="horizontal_anchor_point"/>
|
||||
<Option type="QString" value="bevel" name="joinstyle"/>
|
||||
<Option type="QString" value="line" name="name"/>
|
||||
<Option type="QString" value="1,1" name="offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="offset_unit"/>
|
||||
<Option type="QString" value="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1" name="outline_color"/>
|
||||
<Option type="QString" value="solid" name="outline_style"/>
|
||||
<Option type="QString" value="0.5" name="outline_width"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="outline_width_unit"/>
|
||||
<Option type="QString" value="diameter" name="scale_method"/>
|
||||
<Option type="QString" value="2" name="size"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="size_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="size_unit"/>
|
||||
<Option type="QString" value="1" name="vertical_anchor_point"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
<layer class="SimpleMarker" id="{c9ae8a84-1a7d-4599-b27d-37bc1484098b}" enabled="1" locked="0" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="0" name="angle"/>
|
||||
<Option type="QString" value="square" name="cap_style"/>
|
||||
<Option type="QString" value="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1" name="color"/>
|
||||
<Option type="QString" value="1" name="horizontal_anchor_point"/>
|
||||
<Option type="QString" value="bevel" name="joinstyle"/>
|
||||
<Option type="QString" value="line" name="name"/>
|
||||
<Option type="QString" value="0,1" name="offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="offset_unit"/>
|
||||
<Option type="QString" value="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1" name="outline_color"/>
|
||||
<Option type="QString" value="solid" name="outline_style"/>
|
||||
<Option type="QString" value="0.5" name="outline_width"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="outline_width_unit"/>
|
||||
<Option type="QString" value="diameter" name="scale_method"/>
|
||||
<Option type="QString" value="2" name="size"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="size_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="size_unit"/>
|
||||
<Option type="QString" value="1" name="vertical_anchor_point"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</layer>
|
||||
<layer class="SimpleLine" id="{fd1fd75a-85c6-4ace-a1bc-300a87cb1bcf}" enabled="1" locked="0" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="0" name="align_dash_pattern"/>
|
||||
<Option type="QString" value="square" name="capstyle"/>
|
||||
<Option type="QString" value="5;2" name="customdash"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="customdash_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="customdash_unit"/>
|
||||
<Option type="QString" value="0" name="dash_pattern_offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="dash_pattern_offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="dash_pattern_offset_unit"/>
|
||||
<Option type="QString" value="0" name="draw_inside_polygon"/>
|
||||
<Option type="QString" value="bevel" name="joinstyle"/>
|
||||
<Option type="QString" value="128,128,128,255,rgb:0.50196078431372548,0.50196078431372548,0.50196078431372548,1" name="line_color"/>
|
||||
<Option type="QString" value="solid" name="line_style"/>
|
||||
<Option type="QString" value="0.5" name="line_width"/>
|
||||
<Option type="QString" value="MM" name="line_width_unit"/>
|
||||
<Option type="QString" value="0" name="offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="offset_unit"/>
|
||||
<Option type="QString" value="0" name="ring_filter"/>
|
||||
<Option type="QString" value="0" name="trim_distance_end"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="trim_distance_end_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="trim_distance_end_unit"/>
|
||||
<Option type="QString" value="0" name="trim_distance_start"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="trim_distance_start_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="trim_distance_start_unit"/>
|
||||
<Option type="QString" value="0" name="tweak_dash_pattern_on_corners"/>
|
||||
<Option type="QString" value="0" name="use_custom_dash"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="width_map_unit_scale"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
<layer class="CentroidFill" id="{801668fb-6226-4c79-a72a-ec430781b326}" enabled="1" locked="0" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="1" name="clip_on_current_part_only"/>
|
||||
<Option type="QString" value="1" name="clip_points"/>
|
||||
<Option type="QString" value="1" name="point_on_all_parts"/>
|
||||
<Option type="QString" value="1" name="point_on_surface"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<symbol type="marker" force_rhr="0" is_animated="0" frame_rate="10" name="@0@2" alpha="1" clip_to_extent="1">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer class="SimpleMarker" id="{d075cd2b-6c94-49c8-b6a6-61d75f00fbc5}" enabled="1" locked="0" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="0" name="angle"/>
|
||||
<Option type="QString" value="square" name="cap_style"/>
|
||||
<Option type="QString" value="255,0,0,0,rgb:1,0,0,0" name="color"/>
|
||||
<Option type="QString" value="1" name="horizontal_anchor_point"/>
|
||||
<Option type="QString" value="bevel" name="joinstyle"/>
|
||||
<Option type="QString" value="circle" name="name"/>
|
||||
<Option type="QString" value="0,0" name="offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MapUnit" name="offset_unit"/>
|
||||
<Option type="QString" value="0,0,0,255,rgb:0,0,0,1" name="outline_color"/>
|
||||
<Option type="QString" value="solid" name="outline_style"/>
|
||||
<Option type="QString" value="0.5" name="outline_width"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="outline_width_unit"/>
|
||||
<Option type="QString" value="diameter" name="scale_method"/>
|
||||
<Option type="QString" value="15" name="size"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="size_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="size_unit"/>
|
||||
<Option type="QString" value="1" name="vertical_anchor_point"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
<layer class="FontMarker" id="{d6023cfc-3bfd-46de-9557-e37b755164f3}" enabled="1" locked="0" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="0" name="angle"/>
|
||||
<Option type="QString" value="L" name="chr"/>
|
||||
<Option type="QString" value="0,0,0,255,rgb:0,0,0,1" name="color"/>
|
||||
<Option type="QString" value="Arial" name="font"/>
|
||||
<Option type="QString" value="Standard" name="font_style"/>
|
||||
<Option type="QString" value="1" name="horizontal_anchor_point"/>
|
||||
<Option type="QString" value="bevel" name="joinstyle"/>
|
||||
<Option type="QString" value="0,0" name="offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MapUnit" name="offset_unit"/>
|
||||
<Option type="QString" value="35,35,35,255,rgb:0.13725490196078433,0.13725490196078433,0.13725490196078433,1" name="outline_color"/>
|
||||
<Option type="QString" value="0" name="outline_width"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="outline_width_unit"/>
|
||||
<Option type="QString" value="5" name="size"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="size_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="size_unit"/>
|
||||
<Option type="QString" value="1" name="vertical_anchor_point"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</layer>
|
||||
</symbol>
|
||||
</symbols>
|
||||
<rotation/>
|
||||
<sizescale/>
|
||||
<data-defined-properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data-defined-properties>
|
||||
</renderer-v2>
|
||||
<selection mode="Default">
|
||||
<selectionColor invalid="1"/>
|
||||
<selectionSymbol>
|
||||
<symbol type="fill" force_rhr="0" is_animated="0" frame_rate="10" name="" alpha="1" clip_to_extent="1">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer class="SimpleFill" id="{790c0e9c-4587-46ac-845d-d8d4c15b81b7}" enabled="1" locked="0" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="border_width_map_unit_scale"/>
|
||||
<Option type="QString" value="0,0,255,255,rgb:0,0,1,1" name="color"/>
|
||||
<Option type="QString" value="bevel" name="joinstyle"/>
|
||||
<Option type="QString" value="0,0" name="offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="offset_unit"/>
|
||||
<Option type="QString" value="35,35,35,255,rgb:0.13725490196078433,0.13725490196078433,0.13725490196078433,1" name="outline_color"/>
|
||||
<Option type="QString" value="solid" name="outline_style"/>
|
||||
<Option type="QString" value="0.26" name="outline_width"/>
|
||||
<Option type="QString" value="MM" name="outline_width_unit"/>
|
||||
<Option type="QString" value="solid" name="style"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</selectionSymbol>
|
||||
</selection>
|
||||
<blendMode>0</blendMode>
|
||||
<featureBlendMode>0</featureBlendMode>
|
||||
<layerGeometryType>2</layerGeometryType>
|
||||
</qgis>
|
||||
@@ -1,25 +1,83 @@
|
||||
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
|
||||
<qgis maxScale="0" simplifyDrawingHints="1" simplifyDrawingTol="1" styleCategories="AllStyleCategories" version="3.10.8-A Coruña" simplifyMaxScale="1" simplifyLocal="1" readOnly="0" hasScaleBasedVisibilityFlag="0" minScale="1e+08" simplifyAlgorithm="0" labelsEnabled="1">
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 type="singleSymbol" forceraster="0" symbollevels="0" enableorderby="0">
|
||||
<qgis version="3.40.7-Bratislava" styleCategories="Symbology">
|
||||
<renderer-v2 referencescale="-1" forceraster="0" enableorderby="0" type="singleSymbol" symbollevels="0">
|
||||
<symbols>
|
||||
<symbol alpha="1" type="fill" clip_to_extent="1" name="0" force_rhr="0">
|
||||
<layer class="SimpleFill" locked="0" pass="0" enabled="1">
|
||||
<prop k="border_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="color" v="255,255,153,173"/>
|
||||
<prop k="joinstyle" v="miter"/>
|
||||
<prop k="offset" v="0,0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="outline_color" v="161,2,213,255"/>
|
||||
<prop k="outline_style" v="solid"/>
|
||||
<prop k="outline_width" v="1"/>
|
||||
<prop k="outline_width_unit" v="MM"/>
|
||||
<prop k="style" v="solid"/>
|
||||
<symbol is_animated="0" frame_rate="10" clip_to_extent="1" type="fill" alpha="1" force_rhr="0" name="0">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer locked="0" id="{feca00b2-500a-4c9a-b285-67ba2d99d8f6}" enabled="1" class="SimpleLine" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="0" name="align_dash_pattern"/>
|
||||
<Option type="QString" value="square" name="capstyle"/>
|
||||
<Option type="QString" value="5;2" name="customdash"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="customdash_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="customdash_unit"/>
|
||||
<Option type="QString" value="0" name="dash_pattern_offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="dash_pattern_offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="dash_pattern_offset_unit"/>
|
||||
<Option type="QString" value="0" name="draw_inside_polygon"/>
|
||||
<Option type="QString" value="round" name="joinstyle"/>
|
||||
<Option type="QString" value="215,168,255,255,rgb:0.84313725490196079,0.6588235294117647,1,1" name="line_color"/>
|
||||
<Option type="QString" value="solid" name="line_style"/>
|
||||
<Option type="QString" value="1.5" name="line_width"/>
|
||||
<Option type="QString" value="MM" name="line_width_unit"/>
|
||||
<Option type="QString" value="-0.75" name="offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="offset_unit"/>
|
||||
<Option type="QString" value="0" name="ring_filter"/>
|
||||
<Option type="QString" value="0" name="trim_distance_end"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="trim_distance_end_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="trim_distance_end_unit"/>
|
||||
<Option type="QString" value="0" name="trim_distance_start"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="trim_distance_start_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="trim_distance_start_unit"/>
|
||||
<Option type="QString" value="0" name="tweak_dash_pattern_on_corners"/>
|
||||
<Option type="QString" value="0" name="use_custom_dash"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="width_map_unit_scale"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
<layer locked="0" id="{fdc4d6fd-0995-41df-bbfb-19970b4fc2cc}" enabled="1" class="SimpleLine" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="0" name="align_dash_pattern"/>
|
||||
<Option type="QString" value="square" name="capstyle"/>
|
||||
<Option type="QString" value="5;2" name="customdash"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="customdash_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="customdash_unit"/>
|
||||
<Option type="QString" value="0" name="dash_pattern_offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="dash_pattern_offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="dash_pattern_offset_unit"/>
|
||||
<Option type="QString" value="0" name="draw_inside_polygon"/>
|
||||
<Option type="QString" value="round" name="joinstyle"/>
|
||||
<Option type="QString" value="204,174,137,255,rgb:0.80000000000000004,0.68235294117647061,0.53725490196078429,1" name="line_color"/>
|
||||
<Option type="QString" value="solid" name="line_style"/>
|
||||
<Option type="QString" value="0.5" name="line_width"/>
|
||||
<Option type="QString" value="MM" name="line_width_unit"/>
|
||||
<Option type="QString" value="0" name="offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="offset_unit"/>
|
||||
<Option type="QString" value="0" name="ring_filter"/>
|
||||
<Option type="QString" value="0" name="trim_distance_end"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="trim_distance_end_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="trim_distance_end_unit"/>
|
||||
<Option type="QString" value="0" name="trim_distance_start"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="trim_distance_start_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="trim_distance_start_unit"/>
|
||||
<Option type="QString" value="0" name="tweak_dash_pattern_on_corners"/>
|
||||
<Option type="QString" value="0" name="use_custom_dash"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="width_map_unit_scale"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
@@ -32,285 +90,51 @@
|
||||
</symbols>
|
||||
<rotation/>
|
||||
<sizescale/>
|
||||
</renderer-v2>
|
||||
<labeling type="simple">
|
||||
<settings calloutType="simple">
|
||||
<text-style fontFamily="MS Shell Dlg 2" fontSize="8.25" previewBkgrdColor="255,255,255,255" textOrientation="horizontal" fieldName="Name" textColor="0,0,0,255" fontItalic="0" fontUnderline="0" fontSizeUnit="Point" fontCapitals="0" isExpression="0" fontStrikeout="0" fontWeight="50" fontLetterSpacing="0" fontSizeMapUnitScale="3x:0,0,0,0,0,0" fontWordSpacing="0" textOpacity="1" useSubstitutions="0" fontKerning="1" blendMode="0" namedStyle="Standard" multilineHeight="1">
|
||||
<text-buffer bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferJoinStyle="128" bufferSizeUnits="MM" bufferSize="1" bufferDraw="0" bufferColor="255,255,255,255" bufferNoFill="0" bufferBlendMode="0" bufferOpacity="1"/>
|
||||
<background shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeRotation="0" shapeSizeType="0" shapeOffsetX="0" shapeBlendMode="0" shapeFillColor="255,255,255,255" shapeBorderColor="128,128,128,255" shapeRadiiX="0" shapeRadiiUnit="MM" shapeDraw="0" shapeJoinStyle="64" shapeOffsetUnit="MM" shapeBorderWidthUnit="MM" shapeSizeX="0" shapeSizeUnit="MM" shapeSizeY="0" shapeRadiiY="0" shapeOpacity="1" shapeOffsetY="0" shapeSVGFile="" shapeType="0" shapeBorderWidth="0" shapeRotationType="0" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeSizeMapUnitScale="3x:0,0,0,0,0,0">
|
||||
<symbol alpha="1" type="marker" clip_to_extent="1" name="markerSymbol" force_rhr="0">
|
||||
<layer class="SimpleMarker" locked="0" pass="0" enabled="1">
|
||||
<prop k="angle" v="0"/>
|
||||
<prop k="color" v="213,180,60,255"/>
|
||||
<prop k="horizontal_anchor_point" v="1"/>
|
||||
<prop k="joinstyle" v="bevel"/>
|
||||
<prop k="name" v="circle"/>
|
||||
<prop k="offset" v="0,0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="outline_color" v="35,35,35,255"/>
|
||||
<prop k="outline_style" v="solid"/>
|
||||
<prop k="outline_width" v="0"/>
|
||||
<prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="outline_width_unit" v="MM"/>
|
||||
<prop k="scale_method" v="diameter"/>
|
||||
<prop k="size" v="2"/>
|
||||
<prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="size_unit" v="MM"/>
|
||||
<prop k="vertical_anchor_point" v="1"/>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</background>
|
||||
<shadow shadowUnder="0" shadowOffsetUnit="MM" shadowScale="100" shadowColor="0,0,0,255" shadowBlendMode="6" shadowOffsetAngle="135" shadowOffsetDist="1" shadowRadiusUnit="MM" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowOpacity="0.7" shadowDraw="0" shadowRadiusAlphaOnly="0" shadowOffsetGlobal="1" shadowRadius="1.5"/>
|
||||
<dd_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</dd_properties>
|
||||
<substitutions/>
|
||||
</text-style>
|
||||
<text-format autoWrapLength="0" placeDirectionSymbol="0" leftDirectionSymbol="<" rightDirectionSymbol=">" decimals="3" wrapChar="" useMaxLineLengthForAutoWrap="1" plussign="0" formatNumbers="0" addDirectionSymbol="0" reverseDirectionSymbol="0" multilineAlign="4294967295"/>
|
||||
<placement xOffset="0" distMapUnitScale="3x:0,0,0,0,0,0" dist="0" repeatDistanceUnits="MM" predefinedPositionOrder="TR,TL,BR,BL,R,L,TSR,BSR" centroidWhole="0" rotationAngle="0" overrunDistanceUnit="MM" placement="1" repeatDistance="0" geometryGeneratorEnabled="0" layerType="PolygonGeometry" offsetUnits="MapUnit" centroidInside="0" offsetType="0" yOffset="0" labelOffsetMapUnitScale="3x:0,0,0,0,0,0" overrunDistance="0" geometryGenerator="" geometryGeneratorType="PointGeometry" placementFlags="10" preserveRotation="1" distUnits="MM" fitInPolygonOnly="0" maxCurvedCharAngleOut="-25" repeatDistanceMapUnitScale="3x:0,0,0,0,0,0" quadOffset="4" maxCurvedCharAngleIn="25" priority="5" overrunDistanceMapUnitScale="3x:0,0,0,0,0,0"/>
|
||||
<rendering fontLimitPixelSize="0" upsidedownLabels="0" zIndex="0" drawLabels="1" fontMinPixelSize="3" displayAll="0" scaleMax="10000000" labelPerPart="0" fontMaxPixelSize="10000" mergeLines="0" obstacle="1" minFeatureSize="0" obstacleType="0" obstacleFactor="1" scaleMin="1" limitNumLabels="0" scaleVisibility="0" maxNumLabels="2000"/>
|
||||
<dd_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</dd_properties>
|
||||
<callout type="simple">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="pole_of_inaccessibility" name="anchorPoint"/>
|
||||
<Option type="Map" name="ddProperties">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
<Option type="bool" value="false" name="drawToAllParts"/>
|
||||
<Option type="QString" value="0" name="enabled"/>
|
||||
<Option type="QString" value="<symbol alpha="1" type="line" clip_to_extent="1" name="symbol" force_rhr="0"><layer class="SimpleLine" locked="0" pass="0" enabled="1"><prop k="capstyle" v="square"/><prop k="customdash" v="5;2"/><prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/><prop k="customdash_unit" v="MM"/><prop k="draw_inside_polygon" v="0"/><prop k="joinstyle" v="bevel"/><prop k="line_color" v="60,60,60,255"/><prop k="line_style" v="solid"/><prop k="line_width" v="0.3"/><prop k="line_width_unit" v="MM"/><prop k="offset" v="0"/><prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/><prop k="offset_unit" v="MM"/><prop k="ring_filter" v="0"/><prop k="use_custom_dash" v="0"/><prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/><data_defined_properties><Option type="Map"><Option type="QString" value="" name="name"/><Option name="properties"/><Option type="QString" value="collection" name="type"/></Option></data_defined_properties></layer></symbol>" name="lineSymbol"/>
|
||||
<Option type="double" value="0" name="minLength"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="minLengthMapUnitScale"/>
|
||||
<Option type="QString" value="MM" name="minLengthUnit"/>
|
||||
<Option type="double" value="0" name="offsetFromAnchor"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offsetFromAnchorMapUnitScale"/>
|
||||
<Option type="QString" value="MM" name="offsetFromAnchorUnit"/>
|
||||
<Option type="double" value="0" name="offsetFromLabel"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offsetFromLabelMapUnitScale"/>
|
||||
<Option type="QString" value="MM" name="offsetFromLabelUnit"/>
|
||||
</Option>
|
||||
</callout>
|
||||
</settings>
|
||||
</labeling>
|
||||
<customproperties>
|
||||
<property value="0" key="embeddedWidgets/count"/>
|
||||
<property key="variableNames"/>
|
||||
<property key="variableValues"/>
|
||||
</customproperties>
|
||||
<blendMode>0</blendMode>
|
||||
<featureBlendMode>0</featureBlendMode>
|
||||
<layerOpacity>1</layerOpacity>
|
||||
<SingleCategoryDiagramRenderer attributeLegend="1" diagramType="Histogram">
|
||||
<DiagramCategory minimumSize="0" enabled="0" scaleBasedVisibility="0" labelPlacementMethod="XHeight" rotationOffset="270" backgroundColor="#ffffff" width="15" backgroundAlpha="255" sizeType="MM" penWidth="0" penColor="#000000" lineSizeScale="3x:0,0,0,0,0,0" maxScaleDenominator="1e+08" sizeScale="3x:0,0,0,0,0,0" scaleDependency="Area" barWidth="5" lineSizeType="MM" minScaleDenominator="0" height="15" opacity="1" diagramOrientation="Up" penAlpha="255">
|
||||
<fontProperties description="MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0" style=""/>
|
||||
</DiagramCategory>
|
||||
</SingleCategoryDiagramRenderer>
|
||||
<DiagramLayerSettings placement="1" showAll="1" priority="0" zIndex="0" obstacle="0" linePlacementFlags="18" dist="0">
|
||||
<properties>
|
||||
<data-defined-properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</properties>
|
||||
</DiagramLayerSettings>
|
||||
<geometryOptions removeDuplicateNodes="0" geometryPrecision="0">
|
||||
<activeChecks/>
|
||||
<checkConfiguration type="Map">
|
||||
<Option type="Map" name="QgsGeometryGapCheck">
|
||||
<Option type="double" value="0" name="allowedGapsBuffer"/>
|
||||
<Option type="bool" value="false" name="allowedGapsEnabled"/>
|
||||
<Option type="QString" value="" name="allowedGapsLayer"/>
|
||||
</Option>
|
||||
</checkConfiguration>
|
||||
</geometryOptions>
|
||||
<fieldConfiguration>
|
||||
<field name="id">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field name="Name">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field name="Nummer">
|
||||
<editWidget type="Range">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field name="Referat">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field name="Ansprechpartner">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field name="Telefon">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field name="E-Mail">
|
||||
<editWidget type="TextEdit">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
<field name="Letzte Änderung">
|
||||
<editWidget type="DateTime">
|
||||
<config>
|
||||
<Option/>
|
||||
</config>
|
||||
</editWidget>
|
||||
</field>
|
||||
</fieldConfiguration>
|
||||
<aliases>
|
||||
<alias index="0" name="" field="id"/>
|
||||
<alias index="1" name="" field="Name"/>
|
||||
<alias index="2" name="" field="Nummer"/>
|
||||
<alias index="3" name="" field="Referat"/>
|
||||
<alias index="4" name="" field="Ansprechpartner"/>
|
||||
<alias index="5" name="" field="Telefon"/>
|
||||
<alias index="6" name="" field="E-Mail"/>
|
||||
<alias index="7" name="" field="Letzte Änderung"/>
|
||||
</aliases>
|
||||
<excludeAttributesWMS/>
|
||||
<excludeAttributesWFS/>
|
||||
<defaults>
|
||||
<default expression="" applyOnUpdate="0" field="id"/>
|
||||
<default expression="" applyOnUpdate="0" field="Name"/>
|
||||
<default expression="" applyOnUpdate="0" field="Nummer"/>
|
||||
<default expression="" applyOnUpdate="0" field="Referat"/>
|
||||
<default expression="" applyOnUpdate="0" field="Ansprechpartner"/>
|
||||
<default expression="" applyOnUpdate="0" field="Telefon"/>
|
||||
<default expression="" applyOnUpdate="0" field="E-Mail"/>
|
||||
<default expression="" applyOnUpdate="0" field="Letzte Änderung"/>
|
||||
</defaults>
|
||||
<constraints>
|
||||
<constraint exp_strength="0" notnull_strength="1" unique_strength="1" field="id" constraints="3"/>
|
||||
<constraint exp_strength="0" notnull_strength="0" unique_strength="0" field="Name" constraints="0"/>
|
||||
<constraint exp_strength="0" notnull_strength="0" unique_strength="0" field="Nummer" constraints="0"/>
|
||||
<constraint exp_strength="0" notnull_strength="0" unique_strength="0" field="Referat" constraints="0"/>
|
||||
<constraint exp_strength="0" notnull_strength="0" unique_strength="0" field="Ansprechpartner" constraints="0"/>
|
||||
<constraint exp_strength="0" notnull_strength="0" unique_strength="0" field="Telefon" constraints="0"/>
|
||||
<constraint exp_strength="0" notnull_strength="0" unique_strength="0" field="E-Mail" constraints="0"/>
|
||||
<constraint exp_strength="0" notnull_strength="0" unique_strength="0" field="Letzte Änderung" constraints="0"/>
|
||||
</constraints>
|
||||
<constraintExpressions>
|
||||
<constraint desc="" exp="" field="id"/>
|
||||
<constraint desc="" exp="" field="Name"/>
|
||||
<constraint desc="" exp="" field="Nummer"/>
|
||||
<constraint desc="" exp="" field="Referat"/>
|
||||
<constraint desc="" exp="" field="Ansprechpartner"/>
|
||||
<constraint desc="" exp="" field="Telefon"/>
|
||||
<constraint desc="" exp="" field="E-Mail"/>
|
||||
<constraint desc="" exp="" field="Letzte Änderung"/>
|
||||
</constraintExpressions>
|
||||
<expressionfields/>
|
||||
<attributeactions>
|
||||
<defaultAction value="{00000000-0000-0000-0000-000000000000}" key="Canvas"/>
|
||||
</attributeactions>
|
||||
<attributetableconfig sortOrder="0" actionWidgetStyle="dropDown" sortExpression="">
|
||||
<columns>
|
||||
<column type="actions" hidden="1" width="-1"/>
|
||||
<column type="field" hidden="0" width="-1" name="Nummer"/>
|
||||
<column type="field" hidden="0" width="-1" name="Name"/>
|
||||
<column type="field" hidden="0" width="-1" name="E-Mail"/>
|
||||
<column type="field" hidden="0" width="-1" name="Letzte Änderung"/>
|
||||
<column type="field" hidden="0" width="-1" name="id"/>
|
||||
<column type="field" hidden="0" width="-1" name="Referat"/>
|
||||
<column type="field" hidden="0" width="-1" name="Ansprechpartner"/>
|
||||
<column type="field" hidden="0" width="-1" name="Telefon"/>
|
||||
</columns>
|
||||
</attributetableconfig>
|
||||
<conditionalstyles>
|
||||
<rowstyles/>
|
||||
<fieldstyles/>
|
||||
</conditionalstyles>
|
||||
<storedexpressions/>
|
||||
<editform tolerant="1">.</editform>
|
||||
<editforminit/>
|
||||
<editforminitcodesource>0</editforminitcodesource>
|
||||
<editforminitfilepath>.</editforminitfilepath>
|
||||
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
|
||||
"""
|
||||
QGIS forms can have a Python function that is called when the form is
|
||||
opened.
|
||||
|
||||
Use this function to add extra logic to your forms.
|
||||
|
||||
Enter the name of the function in the "Python Init function"
|
||||
field.
|
||||
An example follows:
|
||||
"""
|
||||
from qgis.PyQt.QtWidgets import QWidget
|
||||
|
||||
def my_form_open(dialog, layer, feature):
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
]]></editforminitcode>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
<editable>
|
||||
<field name="Ansprechpartner" editable="1"/>
|
||||
<field name="E-Mail" editable="1"/>
|
||||
<field name="Letzte Änderung" editable="1"/>
|
||||
<field name="Name" editable="1"/>
|
||||
<field name="Nummer" editable="1"/>
|
||||
<field name="Referat" editable="1"/>
|
||||
<field name="Telefon" editable="1"/>
|
||||
<field name="id" editable="1"/>
|
||||
</editable>
|
||||
<labelOnTop>
|
||||
<field labelOnTop="0" name="Ansprechpartner"/>
|
||||
<field labelOnTop="0" name="E-Mail"/>
|
||||
<field labelOnTop="0" name="Letzte Änderung"/>
|
||||
<field labelOnTop="0" name="Name"/>
|
||||
<field labelOnTop="0" name="Nummer"/>
|
||||
<field labelOnTop="0" name="Referat"/>
|
||||
<field labelOnTop="0" name="Telefon"/>
|
||||
<field labelOnTop="0" name="id"/>
|
||||
</labelOnTop>
|
||||
<widgets/>
|
||||
<previewExpression>COALESCE( "name", '<NULL>' )</previewExpression>
|
||||
<mapTip></mapTip>
|
||||
</data-defined-properties>
|
||||
</renderer-v2>
|
||||
<selection mode="Default">
|
||||
<selectionColor invalid="1"/>
|
||||
<selectionSymbol>
|
||||
<symbol is_animated="0" frame_rate="10" clip_to_extent="1" type="fill" alpha="1" force_rhr="0" name="">
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
<layer locked="0" id="{f18003f5-220a-487f-8a6d-b24facc4c1a5}" enabled="1" class="SimpleFill" pass="0">
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="border_width_map_unit_scale"/>
|
||||
<Option type="QString" value="0,0,255,255,rgb:0,0,1,1" name="color"/>
|
||||
<Option type="QString" value="bevel" name="joinstyle"/>
|
||||
<Option type="QString" value="0,0" name="offset"/>
|
||||
<Option type="QString" value="3x:0,0,0,0,0,0" name="offset_map_unit_scale"/>
|
||||
<Option type="QString" value="MM" name="offset_unit"/>
|
||||
<Option type="QString" value="35,35,35,255,rgb:0.13725490196078433,0.13725490196078433,0.13725490196078433,1" name="outline_color"/>
|
||||
<Option type="QString" value="solid" name="outline_style"/>
|
||||
<Option type="QString" value="0.26" name="outline_width"/>
|
||||
<Option type="QString" value="MM" name="outline_width_unit"/>
|
||||
<Option type="QString" value="solid" name="style"/>
|
||||
</Option>
|
||||
<data_defined_properties>
|
||||
<Option type="Map">
|
||||
<Option type="QString" value="" name="name"/>
|
||||
<Option name="properties"/>
|
||||
<Option type="QString" value="collection" name="type"/>
|
||||
</Option>
|
||||
</data_defined_properties>
|
||||
</layer>
|
||||
</symbol>
|
||||
</selectionSymbol>
|
||||
</selection>
|
||||
<blendMode>0</blendMode>
|
||||
<featureBlendMode>0</featureBlendMode>
|
||||
<layerGeometryType>2</layerGeometryType>
|
||||
</qgis>
|
||||
|
||||
1
test/__init__.py
Normal file
1
test/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
#Testordner
|
||||
29
test/run_tests.py
Normal file
29
test/run_tests.py
Normal file
@@ -0,0 +1,29 @@
|
||||
import sys
|
||||
import os
|
||||
import unittest
|
||||
|
||||
# Projekt-Root dem Suchpfad hinzufügen
|
||||
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
||||
if project_root not in sys.path:
|
||||
sys.path.insert(0, project_root)
|
||||
|
||||
def main():
|
||||
loader = unittest.TestLoader()
|
||||
suite = unittest.TestSuite()
|
||||
|
||||
test_modules = [
|
||||
"test_dateipruefer",
|
||||
"test_stilpruefer",
|
||||
"test_linkpruefer",
|
||||
# "test_pruefmanager" enthält QGIS-spezifische Funktionen
|
||||
]
|
||||
|
||||
for mod_name in test_modules:
|
||||
mod = __import__(mod_name)
|
||||
suite.addTests(loader.loadTestsFromModule(mod))
|
||||
|
||||
runner = unittest.TextTestRunner(verbosity=2)
|
||||
runner.run(suite)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
9
test/start_osgeo4w_qgis.bat
Normal file
9
test/start_osgeo4w_qgis.bat
Normal file
@@ -0,0 +1,9 @@
|
||||
@echo off
|
||||
SET OSGEO4W_ROOT=D:\QGISQT5
|
||||
call %OSGEO4W_ROOT%\bin\o4w_env.bat
|
||||
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis
|
||||
set PYTHONPATH=%QGIS_PREFIX_PATH%\python;%PYTHONPATH%
|
||||
set PATH=%OSGEO4W_ROOT%\bin;%QGIS_PREFIX_PATH%\bin;%PATH%
|
||||
|
||||
REM Neue Eingabeaufforderung starten und Python-Skript ausführen
|
||||
start cmd /k "python run_tests.py"
|
||||
88
test/test_dateipruefer.py
Normal file
88
test/test_dateipruefer.py
Normal file
@@ -0,0 +1,88 @@
|
||||
import unittest
|
||||
import os
|
||||
import tempfile
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
from Dateipruefer import (
|
||||
Dateipruefer,
|
||||
LeererPfadModus,
|
||||
DateiEntscheidung,
|
||||
DateipruefErgebnis
|
||||
)
|
||||
|
||||
|
||||
class TestDateipruefer(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.pruefer = Dateipruefer()
|
||||
self.plugin_pfad = tempfile.gettempdir()
|
||||
self.standardname = "test_standard.gpkg"
|
||||
|
||||
def test_verbotener_leerer_pfad(self):
|
||||
result = self.pruefer.pruefe(
|
||||
pfad="",
|
||||
leer_modus=LeererPfadModus.VERBOTEN
|
||||
)
|
||||
self.assertFalse(result.erfolgreich)
|
||||
self.assertIn("Kein Pfad angegeben.", result.fehler)
|
||||
|
||||
def test_standardpfad_wird_verwendet(self):
|
||||
result = self.pruefer.pruefe(
|
||||
pfad="",
|
||||
leer_modus=LeererPfadModus.NUTZE_STANDARD,
|
||||
standardname=self.standardname,
|
||||
plugin_pfad=self.plugin_pfad
|
||||
)
|
||||
self.assertTrue(result.erfolgreich)
|
||||
expected_path = os.path.join(self.plugin_pfad, self.standardname)
|
||||
self.assertEqual(result.pfad, expected_path)
|
||||
|
||||
def test_temporärer_layer_wird_erkannt(self):
|
||||
result = self.pruefer.pruefe(
|
||||
pfad="",
|
||||
leer_modus=LeererPfadModus.TEMPORAER_ERLAUBT
|
||||
)
|
||||
self.assertTrue(result.erfolgreich)
|
||||
self.assertIsNone(result.pfad)
|
||||
self.assertFalse(result.temporär)
|
||||
|
||||
def test_existierende_datei_ohne_entscheidung(self):
|
||||
with tempfile.NamedTemporaryFile(delete=False) as tmp_file:
|
||||
tmp_path = tmp_file.name
|
||||
try:
|
||||
result = self.pruefer.pruefe(
|
||||
pfad=tmp_path,
|
||||
leer_modus=LeererPfadModus.VERBOTEN
|
||||
)
|
||||
self.assertTrue(result.erfolgreich) # neu: jetzt True, nicht False
|
||||
self.assertIn("Datei existiert bereits – Entscheidung ausstehend.", result.fehler)
|
||||
self.assertIsNone(result.entscheidung)
|
||||
finally:
|
||||
os.remove(tmp_path)
|
||||
|
||||
def test_existierende_datei_mit_entscheidung_ersetzen(self):
|
||||
with tempfile.NamedTemporaryFile(delete=False) as tmp_file:
|
||||
tmp_path = tmp_file.name
|
||||
try:
|
||||
result = self.pruefer.pruefe(
|
||||
pfad=tmp_path,
|
||||
leer_modus=LeererPfadModus.VERBOTEN,
|
||||
vorhandene_datei_entscheidung=DateiEntscheidung.ERSETZEN
|
||||
)
|
||||
self.assertTrue(result.erfolgreich)
|
||||
self.assertEqual(result.entscheidung, DateiEntscheidung.ERSETZEN)
|
||||
finally:
|
||||
os.remove(tmp_path)
|
||||
|
||||
def test_datei_nicht_existiert(self):
|
||||
fake_path = os.path.join(self.plugin_pfad, "nicht_existierend.gpkg")
|
||||
result = self.pruefer.pruefe(
|
||||
pfad=fake_path,
|
||||
leer_modus=LeererPfadModus.VERBOTEN
|
||||
)
|
||||
self.assertTrue(result.erfolgreich)
|
||||
self.assertEqual(result.pfad, fake_path)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
125
test/test_linkpruefer.py
Normal file
125
test/test_linkpruefer.py
Normal file
@@ -0,0 +1,125 @@
|
||||
# test/test_linkpruefer.py
|
||||
|
||||
import unittest
|
||||
import sys
|
||||
from unittest.mock import patch
|
||||
from qgis.PyQt.QtCore import QCoreApplication, QTimer
|
||||
from qgis.PyQt.QtNetwork import QNetworkRequest
|
||||
|
||||
from linkpruefer import Linkpruefer
|
||||
|
||||
# Stelle sicher, dass eine Qt-App existiert
|
||||
app = QCoreApplication.instance()
|
||||
if app is None:
|
||||
app = QCoreApplication(sys.argv)
|
||||
|
||||
|
||||
class DummyReply:
|
||||
"""Fake-Reply, um Netzwerkabfragen zu simulieren"""
|
||||
HttpStatusCodeAttribute = QNetworkRequest.HttpStatusCodeAttribute
|
||||
|
||||
def __init__(self, error, status_code):
|
||||
self._error = error
|
||||
self._status_code = status_code
|
||||
self.finished = self # Fake-Signal
|
||||
|
||||
def connect(self, slot):
|
||||
# sorgt dafür, dass loop.quit() nach Start von loop.exec_() ausgeführt wird
|
||||
QTimer.singleShot(0, slot)
|
||||
|
||||
def error(self):
|
||||
return self._error
|
||||
|
||||
def errorString(self):
|
||||
return "Simulierter Fehler" if self._error != 0 else ""
|
||||
|
||||
def attribute(self, attr):
|
||||
if attr == self.HttpStatusCodeAttribute:
|
||||
return self._status_code
|
||||
return None
|
||||
|
||||
def deleteLater(self):
|
||||
# kein echtes QObject → wir tun einfach nichts
|
||||
pass
|
||||
|
||||
|
||||
class TestLinkpruefer(unittest.TestCase):
|
||||
"""Tests für alle Funktionen des Linkpruefer"""
|
||||
|
||||
# ----------------------------
|
||||
# Remote-Tests mit DummyReply
|
||||
# ----------------------------
|
||||
@patch('linkpruefer.QgsNetworkAccessManager.head')
|
||||
def test_remote_link_success(self, mock_head):
|
||||
mock_head.return_value = DummyReply(0, 200)
|
||||
|
||||
checker = Linkpruefer("https://example.com/service", "REST")
|
||||
result = checker.ausfuehren()
|
||||
|
||||
self.assertTrue(result.erfolgreich)
|
||||
self.assertEqual(result.daten['typ'], 'REST')
|
||||
self.assertEqual(result.daten['quelle'], 'remote')
|
||||
self.assertEqual(result.fehler, [])
|
||||
self.assertEqual(result.warnungen, [])
|
||||
|
||||
@patch('linkpruefer.QgsNetworkAccessManager.head')
|
||||
def test_remote_link_failure(self, mock_head):
|
||||
mock_head.return_value = DummyReply(1, 404)
|
||||
|
||||
checker = Linkpruefer("https://example.com/kaputt", "WMS")
|
||||
result = checker.ausfuehren()
|
||||
|
||||
self.assertFalse(result.erfolgreich)
|
||||
self.assertIn("Verbindungsfehler: Simulierter Fehler", result.fehler)
|
||||
|
||||
# ----------------------------
|
||||
# Klassifizierungstests
|
||||
# ----------------------------
|
||||
def test_klassifiziere_anbieter_remote(self):
|
||||
checker = Linkpruefer("https://beispiel.de", "wms")
|
||||
daten = checker.klassifiziere_anbieter()
|
||||
self.assertEqual(daten["typ"], "WMS")
|
||||
self.assertEqual(daten["quelle"], "remote")
|
||||
|
||||
def test_klassifiziere_anbieter_local(self):
|
||||
checker = Linkpruefer("C:/daten/test.shp", "ogr")
|
||||
daten = checker.klassifiziere_anbieter()
|
||||
self.assertEqual(daten["typ"], "OGR")
|
||||
self.assertEqual(daten["quelle"], "local")
|
||||
|
||||
# ----------------------------
|
||||
# Lokale Links
|
||||
# ----------------------------
|
||||
def test_pruefe_link_local_ok(self):
|
||||
checker = Linkpruefer("C:/daten/test.shp", "OGR")
|
||||
result = checker.pruefe_link()
|
||||
self.assertTrue(result.erfolgreich)
|
||||
self.assertEqual(result.warnungen, [])
|
||||
|
||||
def test_pruefe_link_local_warnung(self):
|
||||
checker = Linkpruefer("C:/daten/ordner/", "OGR")
|
||||
result = checker.pruefe_link()
|
||||
self.assertTrue(result.erfolgreich)
|
||||
self.assertIn("ungewöhnlich", result.warnungen[0])
|
||||
|
||||
# ----------------------------
|
||||
# Sonderfall: leerer Link
|
||||
# ----------------------------
|
||||
def test_pruefe_link_empty(self):
|
||||
checker = Linkpruefer("", "REST")
|
||||
result = checker.pruefe_link()
|
||||
self.assertFalse(result.erfolgreich)
|
||||
self.assertIn("Link fehlt.", result.fehler)
|
||||
|
||||
# ----------------------------
|
||||
# leerer Anbieter
|
||||
# ----------------------------
|
||||
def test_pruefe_link_leerer_anbieter(self):
|
||||
checker = Linkpruefer("https://example.com/service", "")
|
||||
result = checker.pruefe_link()
|
||||
self.assertFalse(result.erfolgreich)
|
||||
self.assertIn("Anbieter muss gesetzt werden und darf nicht leer sein.", result.fehler)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
36
test/test_pruefmanager.py
Normal file
36
test/test_pruefmanager.py
Normal file
@@ -0,0 +1,36 @@
|
||||
import unittest
|
||||
import os
|
||||
from unittest.mock import patch
|
||||
from pruefmanager import PruefManager
|
||||
from Dateipruefer import DateiEntscheidung
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
|
||||
class TestPruefManager(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.manager = PruefManager(plugin_pfad="/tmp")
|
||||
|
||||
@patch("PyQt5.QtWidgets.QMessageBox.exec_", return_value=QMessageBox.Yes)
|
||||
def test_frage_datei_ersetzen(self, mock_msgbox):
|
||||
entscheidung = self.manager.frage_datei_ersetzen_oder_anhaengen("dummy.gpkg")
|
||||
self.assertEqual(entscheidung, DateiEntscheidung.ERSETZEN)
|
||||
|
||||
@patch("PyQt5.QtWidgets.QMessageBox.exec_", return_value=QMessageBox.No)
|
||||
def test_frage_datei_anhaengen(self, mock_msgbox):
|
||||
entscheidung = self.manager.frage_datei_ersetzen_oder_anhaengen("dummy.gpkg")
|
||||
self.assertEqual(entscheidung, DateiEntscheidung.ANHAENGEN)
|
||||
|
||||
@patch("PyQt5.QtWidgets.QMessageBox.exec_", return_value=QMessageBox.Cancel)
|
||||
def test_frage_datei_abbrechen(self, mock_msgbox):
|
||||
entscheidung = self.manager.frage_datei_ersetzen_oder_anhaengen("dummy.gpkg")
|
||||
self.assertEqual(entscheidung, DateiEntscheidung.ABBRECHEN)
|
||||
|
||||
@patch("PyQt5.QtWidgets.QMessageBox.exec_", return_value=QMessageBox.Yes)
|
||||
def test_frage_temporär_verwenden_ja(self, mock_msgbox):
|
||||
self.assertTrue(self.manager.frage_temporär_verwenden())
|
||||
|
||||
@patch("PyQt5.QtWidgets.QMessageBox.exec_", return_value=QMessageBox.No)
|
||||
def test_frage_temporär_verwenden_nein(self, mock_msgbox):
|
||||
self.assertFalse(self.manager.frage_temporär_verwenden())
|
||||
47
test/test_stilpruefer.py
Normal file
47
test/test_stilpruefer.py
Normal file
@@ -0,0 +1,47 @@
|
||||
import unittest
|
||||
import tempfile
|
||||
import os
|
||||
from stilpruefer import Stilpruefer
|
||||
from pruef_ergebnis import PruefErgebnis
|
||||
|
||||
|
||||
class TestStilpruefer(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.pruefer = Stilpruefer()
|
||||
|
||||
def test_keine_datei_angegeben(self):
|
||||
result = self.pruefer.pruefe("")
|
||||
self.assertTrue(result.erfolgreich)
|
||||
self.assertIn("Kein Stil angegeben.", result.warnungen)
|
||||
self.assertIsNone(result.daten["stil"])
|
||||
|
||||
def test_datei_existiert_mit_qml(self):
|
||||
with tempfile.NamedTemporaryFile(suffix=".qml", delete=False) as tmp_file:
|
||||
tmp_path = tmp_file.name
|
||||
try:
|
||||
result = self.pruefer.pruefe(tmp_path)
|
||||
self.assertTrue(result.erfolgreich)
|
||||
self.assertEqual(result.daten["stil"], tmp_path)
|
||||
self.assertEqual(result.fehler, [])
|
||||
finally:
|
||||
os.remove(tmp_path)
|
||||
|
||||
def test_datei_existiert_falsche_endung(self):
|
||||
with tempfile.NamedTemporaryFile(suffix=".txt", delete=False) as tmp_file:
|
||||
tmp_path = tmp_file.name
|
||||
try:
|
||||
result = self.pruefer.pruefe(tmp_path)
|
||||
self.assertFalse(result.erfolgreich)
|
||||
self.assertIn("Ungültige Dateiendung", result.fehler[0])
|
||||
finally:
|
||||
os.remove(tmp_path)
|
||||
|
||||
def test_datei_existiert_nicht(self):
|
||||
fake_path = os.path.join(tempfile.gettempdir(), "nichtvorhanden.qml")
|
||||
result = self.pruefer.pruefe(fake_path)
|
||||
self.assertFalse(result.erfolgreich)
|
||||
self.assertIn("Stildatei nicht gefunden", result.fehler[0])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user