Compare commits

..

10 Commits

Author SHA1 Message Date
55c06d4b1a Probleme.txt 2025-09-28 17:38:00 +02:00
0f8730db7f QGIS-Layer-List-Sichtbarkeit-Signal verbunden 2025-09-28 17:37:27 +02:00
acd0c8d888 Probleme.txt 2025-09-28 16:19:55 +02:00
c6eaf56cc5 renamed History -> Graph 2025-09-28 16:19:31 +02:00
b4e1b88521 PoRunner DocStrings + Kommentare 2025-09-28 16:19:31 +02:00
1549ea3d90 QML-Dateien Konstanten 2025-09-28 16:19:31 +02:00
5476c512af Styles + CODE CLEAN po_modules 2025-09-28 16:19:31 +02:00
99c5ac3144 layout etwas geschrumpft 2025-09-28 11:57:13 +02:00
0600925438 Probleme.txt
'trend' scheint kein Bestandteil der API mehr zu sein
2025-09-28 11:49:31 +02:00
7a5e8e82b1 map tips 2025-09-28 11:47:43 +02:00
23 changed files with 2677 additions and 1084 deletions

View File

@ -1,5 +1,6 @@
'trend' scheint kein Bestandteil der API mehr zu sein
Beim Hinzufügen von Features fehlte das layer.updateFields() Beim Hinzufügen von Features fehlte das layer.updateFields()
Beim Hinzufügen von Features fehlte wurde versucht eine viel zu große Pegelonline 'number' in einen Int zu stecken. War schwierig zu entdecken => provider.errors() Beim Hinzufügen von Features fehlte wurde versucht eine viel zu große Pegelonline 'number' in einen Int zu stecken. War schwierig zu entdecken => provider.errors()
DockWidget wurde in der Höhe ziemlich voll → Weiteres Widget nur für Grafen DockWidget wurde in der Höhe ziemlich voll → Weiteres Widget nur für Grafen
eigene styles erzeugen! Styles überschreiben die map_tips (Reihenfolge korrigieren)

55
map_tips.py Normal file
View File

@ -0,0 +1,55 @@
BASEMAP_MAP_TIPS = "[% \"NAM\" %] [% if(\"ZNM\" != '', ' / ' || \"ZNM\", '') %]"
STATIONS_MAP_TIPS = "\
<h1>[% \"shortname\" %]</h1>\
<table>\
<tr>\
<th style='text-align: left'>Nummer:</th>\
<td>#[% \"number\" %]</td>\
</tr>\
<tr>\
<th style='text-align: left'>Behörde:</th>\
<td>[% \"agency\" %]</td>\
</tr>\
<tr>\
<th style='text-align: left'>Gewässer:</th>\
<td>[% \"water\" %]</td>\
</tr>\
<tr>\
<th style='text-align: left'>Kilometer:</th>\
<td>[% \"km\" %] km</td>\
</tr>\
</table>"
WATERLEVELS_MAP_TIPS = "\
<h1>[% \"shortname\" %]</h1>\
<table>\
<tr>\
<th style='text-align: left'>Nummer:</th>\
<td>#[% \"number\" %]</td>\
</tr>\
<tr>\
<th style='text-align: left'>Behörde:</th>\
<td>[% \"agency\" %]</td>\
</tr>\
<tr>\
<th style='text-align: left'>Gewässer:</th>\
<td>[% \"water\" %]</td>\
</tr>\
<tr>\
<th style='text-align: left'>Zeitstempel:</th>\
<td>[% \"timestamp\" %]</td>\
</tr>\
<tr>\
<th style='text-align: left'>Aktueller Pegel:</th>\
<td>[% \"value\" %] [% \"unit\" %]</td>\
</tr>\
<tr>\
<th style='text-align: left'>MNW, MHW:</th>\
<td>[% \"mean\" %]</td>\
</tr>\
<tr>\
<th style='text-align: left'>NSW, HSW:</th>\
<td>[% \"absolute\" %]</td>\
</tr>\
</table>"

View File

@ -48,7 +48,7 @@ plugin_path:/home/patrick/.local/share/QGIS/QGIS3/profiles/default/python/plugin
[files] [files]
# Python files that should be deployed with the plugin # Python files that should be deployed with the plugin
python_files: __init__.py pegelonline.py pegelonline_dockwidget.py pegelonline_dockwidget_graph.py po_runner.py python_files: __init__.py pegelonline.py pegelonline_dockwidget.py pegelonline_dockwidget_graph.py po_runner.py map_tips.py
# The main dialog file that is loaded (not compiled) # The main dialog file that is loaded (not compiled)
main_dialog: pegelonline_dockwidget_base.ui main_dialog: pegelonline_dockwidget_base.ui
@ -64,7 +64,7 @@ extras: metadata.txt icon.png pegelonline_dockwidget_graph.ui
# Other directories to be deployed with the plugin. # Other directories to be deployed with the plugin.
# These must be subdirectories under the plugin directory # These must be subdirectories under the plugin directory
extra_dirs: pomodules basemap extra_dirs: po_modules basemap styles
# ISO code(s) for any locales (translations), separated by spaces. # ISO code(s) for any locales (translations), separated by spaces.
# Corresponding .ts files must exist in the i18n directory # Corresponding .ts files must exist in the i18n directory

View File

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>301</width> <width>292</width>
<height>687</height> <height>681</height>
</rect> </rect>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
@ -21,116 +21,84 @@
</property> </property>
<widget class="QWidget" name="dockWidgetContents"> <widget class="QWidget" name="dockWidgetContents">
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="4" column="0"> <property name="leftMargin">
<widget class="QGroupBox" name="gbWaterlevels"> <number>5</number>
<property name="title">
<string>Pegelstände:</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <property name="topMargin">
<item> <number>5</number>
<widget class="QCheckBox" name="cbWaterlevelsVisible">
<property name="text">
<string>Anzeigen (Download von Pegelonline)</string>
</property> </property>
</widget> <property name="rightMargin">
</item> <number>5</number>
<item>
<widget class="QGroupBox" name="gbWaterlevelsOptions">
<property name="title">
<string>Optionen:</string>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <property name="bottomMargin">
<item> <number>5</number>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<widget class="QCheckBox" name="cbWaterlevelsNumber">
<property name="text">
<string>Nummer</string>
</property> </property>
</widget> <property name="horizontalSpacing">
</item> <number>0</number>
<item>
<widget class="QCheckBox" name="cbWaterlevelsName">
<property name="text">
<string>Name</string>
</property> </property>
</widget> <property name="verticalSpacing">
</item> <number>2</number>
<item>
<widget class="QCheckBox" name="cbWaterlevelsAgency">
<property name="text">
<string>Behörde</string>
</property> </property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbWaterlevelsWater">
<property name="text">
<string>Gewässername</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QCheckBox" name="cbWaterlevelsTimestamp">
<property name="text">
<string>Zeitstempel</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbWaterlevelsValue">
<property name="text">
<string>Aktueller Wert</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbWaterlevelsMean">
<property name="text">
<string>MNW, MHW</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbWaterlevelsAbsolute">
<property name="text">
<string>NSW, HSW</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QGroupBox" name="gbStations"> <widget class="QGroupBox" name="gbStations">
<property name="title"> <property name="title">
<string>Stationen:</string> <string>Stationen:</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>2</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item> <item>
<widget class="QCheckBox" name="cbStationsVisible"> <widget class="QCheckBox" name="cbStationsVisible">
<property name="text"> <property name="text">
<string>Anzeigen (Download von Pegelonline)</string> <string>Anzeigen (Download von Pegelonline)</string>
</property> </property>
<property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QGroupBox" name="gbStationsOptions"> <widget class="QGroupBox" name="gbStationsOptions">
<property name="title"> <property name="title">
<string>Optionen:</string> <string>Beschriftungen:</string>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_3"> <layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_5"> <layout class="QVBoxLayout" name="verticalLayout_5">
<property name="spacing">
<number>0</number>
</property>
<item> <item>
<widget class="QCheckBox" name="cbStationsNumber"> <widget class="QCheckBox" name="cbStationsNumber">
<property name="text"> <property name="text">
@ -152,10 +120,26 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_6"> <layout class="QVBoxLayout" name="verticalLayout_6">
<property name="spacing">
<number>0</number>
</property>
<item> <item>
<widget class="QCheckBox" name="cbStationsWater"> <widget class="QCheckBox" name="cbStationsWater">
<property name="text"> <property name="text">
@ -170,164 +154,89 @@
</property> </property>
</widget> </widget>
</item> </item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="gbBasemap">
<property name="title">
<string>Basiskarte:</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>
<widget class="QCheckBox" name="cbBasemapLines"> <spacer name="verticalSpacer_2">
<property name="text"> <property name="orientation">
<string>Flüsse</string> <enum>Qt::Vertical</enum>
</property> </property>
</widget> <property name="sizeHint" stdset="0">
</item>
<item>
<widget class="QCheckBox" name="cbBasemapAreas">
<property name="text">
<string>Flächen</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="5" column="0">
<widget class="QGroupBox" name="gbHistory">
<property name="title">
<string>Pegelverlauf:</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size> <size>
<width>50</width> <width>20</width>
<height>0</height> <height>40</height>
</size> </size>
</property> </property>
<property name="text"> </spacer>
<string>Station:</string> </item>
</property> </layout>
</item>
</layout>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QComboBox" name="slHistoryStation"> <widget class="QGroupBox" name="groupBox_2">
<property name="enabled"> <property name="title">
<string>Styles:</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_8">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_11">
<item>
<widget class="QRadioButton" name="rbStationsStylePreset">
<property name="text">
<string>Vorgabe</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
<attribute name="buttonGroup">
<string notr="true">bgStationsStyle</string>
</attribute>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_12">
<item>
<widget class="QRadioButton" name="rbStationsStyleAgency">
<property name="text">
<string>Behörde</string>
</property>
<property name="checked">
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="sizePolicy"> <attribute name="buttonGroup">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> <string notr="true">bgStationsStyle</string>
<horstretch>0</horstretch> </attribute>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnHistoryStationsRefresh">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Neu Laden</string>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_4"> <layout class="QVBoxLayout" name="verticalLayout_13">
<item> <item>
<widget class="QLabel" name="label_2"> <widget class="QRadioButton" name="rbStationsStyleWater">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="text"> <property name="text">
<string>Tage</string> <string>Gewässer</string>
</property> </property>
</widget> <property name="checked">
</item>
<item>
<widget class="QSpinBox" name="numHistoryDays">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>30</number>
</property>
<property name="value">
<number>14</number>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnHistoryGo">
<property name="enabled">
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="sizePolicy"> <attribute name="buttonGroup">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <string notr="true">bgStationsStyle</string>
<horstretch>0</horstretch> </attribute>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Anzeigen</string>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -335,6 +244,9 @@
</layout> </layout>
</widget> </widget>
</item> </item>
</layout>
</widget>
</item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QFrame" name="frame"> <widget class="QFrame" name="frame">
<property name="frameShape"> <property name="frameShape">
@ -344,6 +256,21 @@
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_6"> <layout class="QHBoxLayout" name="horizontalLayout_6">
<property name="spacing">
<number>6</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item> <item>
<widget class="QToolButton" name="btnSelectRectangle"> <widget class="QToolButton" name="btnSelectRectangle">
<property name="text"> <property name="text">
@ -393,6 +320,20 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="btnMapTips">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
<item> <item>
<spacer name="horizontalSpacer"> <spacer name="horizontalSpacer">
<property name="orientation"> <property name="orientation">
@ -409,9 +350,502 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="5" column="0">
<widget class="QGroupBox" name="gbGraph">
<property name="title">
<string>Pegelverlauf:</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
<property name="spacing">
<number>2</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Station:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="slGraphStation">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnGraphStationsRefresh">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Neu Laden</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Tage</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="numGraphDays">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>30</number>
</property>
<property name="value">
<number>14</number>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnGraphLoad">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Anzeigen</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_6">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="4" column="0">
<widget class="QGroupBox" name="gbWaterlevels">
<property name="title">
<string>Pegelstände:</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>2</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QCheckBox" name="cbWaterlevelsVisible">
<property name="text">
<string>Anzeigen (Download von Pegelonline)</string>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="gbWaterlevelsOptions">
<property name="title">
<string>Beschriftungen:</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QCheckBox" name="cbWaterlevelsNumber">
<property name="text">
<string>Nummer</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbWaterlevelsName">
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbWaterlevelsAgency">
<property name="text">
<string>Behörde</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbWaterlevelsWater">
<property name="text">
<string>Gewässername</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QCheckBox" name="cbWaterlevelsTimestamp">
<property name="text">
<string>Zeitstempel</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbWaterlevelsValue">
<property name="text">
<string>Aktueller Wert</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbWaterlevelsMean">
<property name="text">
<string>MNW, MHW</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbWaterlevelsAbsolute">
<property name="text">
<string>NSW, HSW</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Styles:</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QRadioButton" name="rbWaterlevelsStylePreset">
<property name="text">
<string>Vorgabe</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
<attribute name="buttonGroup">
<string notr="true">bgWaterlevelsStyle</string>
</attribute>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_9">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QRadioButton" name="rbWaterlevelsStyleAgency">
<property name="text">
<string>Behörde</string>
</property>
<attribute name="buttonGroup">
<string notr="true">bgWaterlevelsStyle</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rbWaterlevelsStyleWater">
<property name="text">
<string>Gewässer</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
<attribute name="buttonGroup">
<string notr="true">bgWaterlevelsStyle</string>
</attribute>
</widget>
</item>
<item>
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_10">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QRadioButton" name="rbWaterlevelsStyleMean">
<property name="text">
<string>MNW, MHW</string>
</property>
<attribute name="buttonGroup">
<string notr="true">bgWaterlevelsStyle</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rbWaterlevelsStyleAbsolute">
<property name="text">
<string>NSW, HSW</string>
</property>
<attribute name="buttonGroup">
<string notr="true">bgWaterlevelsStyle</string>
</attribute>
</widget>
</item>
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="gbBasemap">
<property name="title">
<string>Basiskarte:</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>2</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QCheckBox" name="cbBasemapLines">
<property name="text">
<string>Flüsse</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbBasemapAreas">
<property name="text">
<string>Flächen</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>
<buttongroups>
<buttongroup name="bgWaterlevelsStyle"/>
<buttongroup name="bgStationsStyle"/>
</buttongroups>
</ui> </ui>

View File

@ -16,7 +16,7 @@
<widget class="QWidget" name="dockWidgetContents"> <widget class="QWidget" name="dockWidgetContents">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<widget class="QLabel" name="lbHistory"> <widget class="QLabel" name="lbGraph">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>

View File

@ -4,18 +4,18 @@ from . import poBaseURL
from .urlreader import UrlReader from .urlreader import UrlReader
class PoHistory(UrlReader): class PoGraphReader(UrlReader):
def __init__(self, station: str, days: int): def __init__(self, station: str, days: int):
super().__init__(poBaseURL + 'stations/%s/W/measurements.png?start=P%dD' % (quote(station), days)) super().__init__(poBaseURL + 'stations/%s/W/measurements.png?start=P%dD' % (quote(station), days))
def download(self): def download(self):
print("download: Lade Bild herunter...") print("PoGraphReader::download: Lade Bild herunter...")
image_data = self.getDataResponse() image_data = self.getDataResponse()
if image_data is None or len(image_data) == 0: if image_data is None or len(image_data) == 0:
print("download: Fehler: Keine Daten erhalten") print("PoGraphReader::download: Fehler: Keine Daten erhalten")
return None return None
print("download: Vollständig") print("PoGraphReader::download: Vollständig")
return image_data return image_data

34
po_modules/po_station.py Normal file
View File

@ -0,0 +1,34 @@
from qgis._core import QgsFeature, QgsGeometry, QgsPointXY
class PoStation(object):
def __init__(self, json):
self.longitude = json['longitude'] if 'longitude' in json else None
self.latitude = json['latitude'] if 'latitude' in json else None
self.uuid = json['uuid']
self.number = json['number']
self.shortname = json['shortname']
self.longname = json['longname']
self.km = json['km'] if 'km' in json else None
self.agency = json['agency']
self.water = json['water']['longname']
def new_feature(self, fields) -> None | QgsFeature:
if self.longitude is None or self.latitude is None:
print("PoStation::new_feature: WARN: Station hat fehlende Koordinaten: %s" % (self.shortname,))
return None
feature = QgsFeature(fields)
feature.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(self.longitude, self.latitude)))
feature.setAttribute('uuid', self.uuid)
feature.setAttribute('number', self.number)
feature.setAttribute('shortname', self.shortname)
feature.setAttribute('longname', self.longname)
feature.setAttribute('km', self.km)
feature.setAttribute('agency', self.agency)
feature.setAttribute('water', self.water)
return feature

28
po_modules/po_stations.py Normal file
View File

@ -0,0 +1,28 @@
from . import poBaseURL
from .po_station import PoStation
from .urlreader import UrlReader
class PoStationReader(UrlReader):
def __init__(self):
super().__init__(poBaseURL + 'stations.json')
def get_stations(self):
print("PoStationReader::get_stations: Lade Stationen herunter...")
stations_json = self.getJsonResponse()
if stations_json is None or len(stations_json) == 0:
print("PoStationReader::get_stations: Keine Stationen erhalten")
return None
stations = []
for station_json in stations_json:
try:
stations.append(PoStation(station_json))
except Exception as e:
print("PoStationReader::get_stations: Fehler: error=%s, json=%s" % (e, station_json))
print("PoStationReader::get_stations: %d Stationen erhalten" % (len(stations),))
return stations

View File

@ -0,0 +1,40 @@
from PyQt5.QtCore import QVariant
from qgis._core import QgsCoordinateReferenceSystem
from qgis.core import QgsFields, QgsField
from .po_stations import PoStationReader
class PoStationReaderQgs(PoStationReader):
def __init__(self):
super().__init__()
self.fields = None
self.crs = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
def get_features(self):
print("PoStationReaderQgs::get_features: Erzeuge Features...")
self.fields = QgsFields()
self.fields.append(QgsField('uuid', QVariant.String))
self.fields.append(QgsField('number', QVariant.LongLong))
self.fields.append(QgsField('shortname', QVariant.String))
self.fields.append(QgsField('longname', QVariant.String))
self.fields.append(QgsField('km', QVariant.Double))
self.fields.append(QgsField('agency', QVariant.String))
self.fields.append(QgsField('water', QVariant.String))
features = []
stations = self.get_stations()
if stations is None or len(stations) == 0:
print("PoStationReaderQgs::get_features: Fehler: Keine Stationen erhalten")
return None
for station in stations:
feature = station.new_feature(self.fields)
if feature is not None:
features.append(feature)
print("PoStationReaderQgs::get_features: %d Features erzeugt" % (len(features),))
return features

View File

@ -0,0 +1,39 @@
from qgis._core import QgsFeature, QgsGeometry, QgsPointXY
class PoWaterlevel(object):
def __init__(self, json):
self.longitude = json['longitude'] if 'longitude' in json else None
self.latitude = json['latitude'] if 'latitude' in json else None
self.uuid = json['uuid']
self.shortname = json['shortname']
self.number = json['number']
self.agency = json['agency']
self.unit = json['timeseries'][0]['unit']
self.timestamp = json['timeseries'][0]['currentMeasurement']['timestamp']
self.value = json['timeseries'][0]['currentMeasurement']['value']
self.mean = json['timeseries'][0]['currentMeasurement']['stateMnwMhw']
self.absolute = json['timeseries'][0]['currentMeasurement']['stateNswHsw']
self.water = json['water']['longname']
def new_feature(self, fields):
if self.longitude is None or self.latitude is None:
print("PoWaterlevel::new_feature: WARN: Station hat fehlende Koordinaten: %s" % (self.shortname,))
return None
feature = QgsFeature(fields)
feature.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(self.longitude, self.latitude)))
feature.setAttribute('shortname', self.shortname)
feature.setAttribute('number', self.number)
feature.setAttribute('agency', self.agency)
feature.setAttribute('timestamp', self.timestamp)
feature.setAttribute('value', self.value)
feature.setAttribute('unit', self.unit)
feature.setAttribute('mean', self.mean)
feature.setAttribute('absolute', self.absolute)
feature.setAttribute('water', self.water)
return feature

View File

@ -0,0 +1,25 @@
from . import poBaseURL
from .po_waterlevel import PoWaterlevel
from .urlreader import UrlReader
class PoWaterlevelReader(UrlReader):
def __init__(self):
super().__init__(poBaseURL + 'stations.json?timeseries=W&includeTimeseries=true&includeCurrentMeasurement=true')
def get_waterlevels(self):
print("PoWaterlevelReader::get_waterlevels: Lade Pegelstände herunter...")
stations_json = self.getJsonResponse()
if stations_json is None or len(stations_json) == 0:
print("PoWaterlevelReader::get_waterlevels: FEHLER: Keine Pegelstände erhalten")
return None
stations = []
for station_json in stations_json:
stations.append(PoWaterlevel(station_json))
print("PoWaterlevelReader::get_waterlevels: %d Pegelstände erhalten" % (len(stations),))
return stations

View File

@ -0,0 +1,41 @@
from PyQt5.QtCore import QVariant
from qgis._core import QgsCoordinateReferenceSystem
from qgis.core import QgsFields, QgsField
from .po_waterlevel_reader import PoWaterlevelReader
class PoWaterlevelReaderQgs(PoWaterlevelReader):
def __init__(self):
super().__init__()
self.fields = None
self.crs = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
def get_features(self):
print("PoWaterlevelReaderQgs::get_features: Erzeuge Features...")
self.fields = QgsFields()
self.fields.append(QgsField('shortname', QVariant.String))
self.fields.append(QgsField('number', QVariant.LongLong))
self.fields.append(QgsField('agency', QVariant.String))
self.fields.append(QgsField('timestamp', QVariant.DateTime))
self.fields.append(QgsField('value', QVariant.Double))
self.fields.append(QgsField('unit', QVariant.String))
self.fields.append(QgsField('mean', QVariant.String))
self.fields.append(QgsField('absolute', QVariant.String))
self.fields.append(QgsField('water', QVariant.String))
features = []
waterlevels = self.get_waterlevels()
if waterlevels is None or len(waterlevels) == 0:
print("PoWaterlevelReaderQgs::get_features: Fehler: Keine Pegelstände erhalten")
return None
for waterlevel in waterlevels:
feature = waterlevel.new_feature(self.fields)
if feature is not None:
features.append(feature)
print("PoWaterlevelReaderQgs::get_features: %d Features erzeugt" % (len(features),))
return features

File diff suppressed because it is too large Load Diff

View File

@ -1,40 +0,0 @@
from . import poBaseURL
from .urlreader import UrlReader
class PoStations(UrlReader):
def __init__(self):
super().__init__(poBaseURL + 'stations.json')
def getStations(self):
print("getStations: Lade Stationen herunter...")
stations_json = self.getJsonResponse()
if stations_json is None or len(stations_json) == 0:
print("getStations: Keine Stationen erhalten")
return None
stations = []
for station_json in stations_json:
stations.append(
{
'geometry': {
'longitude': station_json['longitude'] if 'longitude' in station_json else None,
'latitude': station_json['latitude'] if 'latitude' in station_json else None,
},
'attributes': {
'uuid': station_json['uuid'],
'number': station_json['number'],
'shortname': station_json['shortname'],
'longname': station_json['longname'],
'km': station_json['km'] if 'km' in station_json else None,
'agency': station_json['agency'],
'water': station_json['water']['longname'],
},
}
)
print("getStations: %d Stationen erhalten" % (len(stations),))
return stations

View File

@ -1,62 +0,0 @@
from PyQt5.QtCore import QVariant
from qgis._core import QgsCoordinateReferenceSystem, QgsGeometry, QgsPointXY
from qgis.core import QgsFields, QgsFeature, QgsField
from .po_stations import PoStations
class PoStationsQgs(PoStations):
def __init__(self):
super().__init__()
self.fields = None
self.crs = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
def getStationsFeatures(self):
print("getStationsFeatures: Erzeuge Features...")
self.fields = QgsFields()
self.fields.append(QgsField('uuid', QVariant.String))
self.fields.append(QgsField('number', QVariant.LongLong))
self.fields.append(QgsField('shortname', QVariant.String))
self.fields.append(QgsField('longname', QVariant.String))
self.fields.append(QgsField('km', QVariant.Double))
self.fields.append(QgsField('agency', QVariant.String))
self.fields.append(QgsField('water', QVariant.String))
features = []
stations = self.getStations()
if stations is None or len(stations) == 0:
print("getStationsFeatures: Fehler: Keine Stationen erhalten")
return None
for station in stations:
feature = self._getFeatureForStation(station)
if feature is not None:
features.append(feature)
print("getStationsFeatures: %d Features erzeugt" % (len(features),))
return features
def _getFeatureForStation(self, station) -> None | QgsFeature:
# noinspection DuplicatedCode
if station['geometry']['longitude'] is None or station['geometry']['latitude'] is None:
print("_getFeatureForStation: WARN: Station hat fehlende Koordinaten: %s" % (station['attributes']['shortname'],))
return None
feature = QgsFeature(self.fields)
longitude = station['geometry']['longitude']
latitude = station['geometry']['latitude']
feature.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(longitude, latitude)))
feature.setAttribute('uuid', station['attributes']['uuid'])
feature.setAttribute('number', station['attributes']['number'])
feature.setAttribute('shortname', station['attributes']['shortname'])
feature.setAttribute('longname', station['attributes']['longname'])
feature.setAttribute('km', station['attributes']['km'])
feature.setAttribute('agency', station['attributes']['agency'])
feature.setAttribute('water', station['attributes']['water'])
return feature

View File

@ -1,43 +0,0 @@
from . import poBaseURL
from .urlreader import UrlReader
class PoWaterlevels(UrlReader):
def __init__(self):
super().__init__(poBaseURL + 'stations.json?timeseries=W&includeTimeseries=true&includeCurrentMeasurement=true')
def getWaterlevels(self):
print("getWaterlevels: Lade Pegelstände herunter...")
stations_json = self.getJsonResponse()
if stations_json is None or len(stations_json) == 0:
print("getWaterlevels: FEHLER: Keine Pegelstände erhalten")
return None
stations = []
for station_json in stations_json:
stations.append(
{
'geometry': {
'longitude': station_json['longitude'] if 'longitude' in station_json else None,
'latitude': station_json['latitude'] if 'latitude' in station_json else None,
},
'attributes': {
'uuid': station_json['uuid'],
'shortname': station_json['shortname'],
'number': station_json['number'],
'agency': station_json['agency'],
'unit': station_json['timeseries'][0]['unit'],
'timestamp': station_json['timeseries'][0]['currentMeasurement']['timestamp'],
'value': station_json['timeseries'][0]['currentMeasurement']['value'],
'stateMnwMhw': station_json['timeseries'][0]['currentMeasurement']['stateMnwMhw'],
'stateNswHsw': station_json['timeseries'][0]['currentMeasurement']['stateNswHsw'],
'water': station_json['water']['longname'],
},
}
)
print("getWaterlevels: %d Pegelstände erhalten" % (len(stations),))
return stations

View File

@ -1,65 +0,0 @@
from PyQt5.QtCore import QVariant
from qgis._core import QgsCoordinateReferenceSystem, QgsGeometry, QgsPointXY
from qgis.core import QgsFields, QgsFeature, QgsField
from .po_waterlevels import PoWaterlevels
class PoWaterlevelsQgs(PoWaterlevels):
def __init__(self):
super().__init__()
self.fields = None
self.crs = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
def getWaterlevelsFeatures(self):
print("getWaterlevelsFeatures: Erzeuge Features...")
self.fields = QgsFields()
self.fields.append(QgsField('shortname', QVariant.String))
self.fields.append(QgsField('number', QVariant.LongLong))
self.fields.append(QgsField('agency', QVariant.String))
self.fields.append(QgsField('timestamp', QVariant.DateTime))
self.fields.append(QgsField('value', QVariant.Double))
self.fields.append(QgsField('unit', QVariant.String))
self.fields.append(QgsField('stateMnwMhw', QVariant.String))
self.fields.append(QgsField('stateNswHsw', QVariant.String))
self.fields.append(QgsField('water', QVariant.String))
features = []
waterlevels = self.getWaterlevels()
if waterlevels is None or len(waterlevels) == 0:
print("getWaterlevelsFeatures: Fehler: Keine Pegelstände erhalten")
return None
for station in waterlevels:
feature = self._getFeatureForStation(station)
if feature is not None:
features.append(feature)
print("getWaterlevelsFeatures: %d Features erzeugt" % (len(features),))
return features
def _getFeatureForStation(self, station):
# noinspection DuplicatedCode
if station['geometry']['longitude'] is None or station['geometry']['latitude'] is None:
print("_getFeatureForStation: WARN: Station hat fehlende Koordinaten: %s" % (station['attributes']['shortname'],))
return None
feature = QgsFeature(self.fields)
longitude = station['geometry']['longitude']
latitude = station['geometry']['latitude']
feature.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(longitude, latitude)))
feature.setAttribute('shortname', station['attributes']['shortname'])
feature.setAttribute('number', station['attributes']['number'])
feature.setAttribute('agency', station['attributes']['agency'])
feature.setAttribute('timestamp', station['attributes']['timestamp'])
feature.setAttribute('value', station['attributes']['value'])
feature.setAttribute('unit', station['attributes']['unit'])
feature.setAttribute('stateMnwMhw', station['attributes']['stateMnwMhw'])
feature.setAttribute('stateNswHsw', station['attributes']['stateNswHsw'])
feature.setAttribute('water', station['attributes']['water'])
return feature

View File

@ -1,243 +0,0 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis maxScale="0" labelsEnabled="1" readOnly="0" hasScaleBasedVisibilityFlag="0" styleCategories="AllStyleCategories" simplifyLocal="1" minScale="1e+08" simplifyMaxScale="1" simplifyAlgorithm="0" version="3.4.6-Madeira" simplifyDrawingTol="1" simplifyDrawingHints="0">
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<renderer-v2 symbollevels="0" enableorderby="0" forceraster="0" type="singleSymbol">
<symbols>
<symbol clip_to_extent="1" alpha="1" name="0" type="marker" force_rhr="0">
<layer enabled="1" pass="0" locked="0" class="SimpleMarker">
<prop v="0" k="angle"/>
<prop v="227,26,28,255" k="color"/>
<prop v="1" k="horizontal_anchor_point"/>
<prop v="bevel" k="joinstyle"/>
<prop v="circle" k="name"/>
<prop v="0,0" k="offset"/>
<prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
<prop v="MM" k="offset_unit"/>
<prop v="35,35,35,255" k="outline_color"/>
<prop v="solid" k="outline_style"/>
<prop v="0" k="outline_width"/>
<prop v="3x:0,0,0,0,0,0" k="outline_width_map_unit_scale"/>
<prop v="MM" k="outline_width_unit"/>
<prop v="diameter" k="scale_method"/>
<prop v="2" k="size"/>
<prop v="3x:0,0,0,0,0,0" k="size_map_unit_scale"/>
<prop v="MM" k="size_unit"/>
<prop v="1" k="vertical_anchor_point"/>
<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>
<labeling type="simple">
<settings>
<text-style namedStyle="Regular" fontUnderline="0" fontWordSpacing="0" fontStrikeout="0" fontWeight="25" fontSize="10" isExpression="0" blendMode="0" fontFamily="Calibri Light" fontLetterSpacing="0" textColor="0,0,0,255" previewBkgrdColor="#ffffff" fontSizeUnit="Point" multilineHeight="1" fieldName="shortname" fontSizeMapUnitScale="3x:0,0,0,0,0,0" textOpacity="1" fontCapitals="0" useSubstitutions="0" fontItalic="0">
<text-buffer bufferSize="1" bufferJoinStyle="128" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferColor="255,255,255,255" bufferDraw="1" bufferNoFill="1" bufferOpacity="1" bufferSizeUnits="MM" bufferBlendMode="0"/>
<background shapeRadiiY="0" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeOpacity="1" shapeDraw="0" shapeType="0" shapeSVGFile="" shapeSizeY="0" shapeSizeUnit="MM" shapeOffsetUnit="MM" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeOffsetX="0" shapeJoinStyle="64" shapeRotationType="0" shapeSizeX="0" shapeRotation="0" shapeBorderWidth="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeBlendMode="0" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeOffsetY="0" shapeBorderColor="128,128,128,255" shapeRadiiUnit="MM" shapeSizeType="0" shapeFillColor="255,255,255,255" shapeBorderWidthUnit="MM" shapeRadiiX="0"/>
<shadow shadowRadius="1.5" shadowBlendMode="6" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowOpacity="0.7" shadowDraw="0" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowScale="100" shadowUnder="0" shadowRadiusAlphaOnly="0" shadowOffsetAngle="135" shadowOffsetUnit="MM" shadowRadiusUnit="MM" shadowOffsetDist="1" shadowOffsetGlobal="1" shadowColor="0,0,0,255"/>
<substitutions/>
</text-style>
<text-format addDirectionSymbol="0" placeDirectionSymbol="0" multilineAlign="3" plussign="0" leftDirectionSymbol="&lt;" rightDirectionSymbol=">" formatNumbers="0" reverseDirectionSymbol="0" decimals="3" autoWrapLength="0" wrapChar="" useMaxLineLengthForAutoWrap="1"/>
<placement repeatDistanceMapUnitScale="3x:0,0,0,0,0,0" fitInPolygonOnly="0" quadOffset="1" distUnits="MM" yOffset="0" priority="5" placement="1" repeatDistance="0" offsetType="0" preserveRotation="1" offsetUnits="MM" maxCurvedCharAngleOut="-25" rotationAngle="0" repeatDistanceUnits="MM" maxCurvedCharAngleIn="25" centroidWhole="0" dist="0" xOffset="0" placementFlags="10" predefinedPositionOrder="TR,TL,BR,BL,R,L,TSR,BSR" centroidInside="0" labelOffsetMapUnitScale="3x:0,0,0,0,0,0" distMapUnitScale="3x:0,0,0,0,0,0"/>
<rendering maxNumLabels="2000" obstacle="1" fontLimitPixelSize="0" obstacleFactor="1" minFeatureSize="0" drawLabels="1" scaleMin="0" upsidedownLabels="0" fontMaxPixelSize="10000" zIndex="0" obstacleType="0" fontMinPixelSize="3" scaleMax="0" limitNumLabels="0" displayAll="0" labelPerPart="0" scaleVisibility="0" mergeLines="0"/>
<dd_properties>
<Option type="Map">
<Option name="name" type="QString" value=""/>
<Option name="properties"/>
<Option name="type" type="QString" value="collection"/>
</Option>
</dd_properties>
</settings>
</labeling>
<customproperties>
<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 penAlpha="255" penColor="#000000" maxScaleDenominator="1e+08" sizeType="MM" backgroundAlpha="255" width="15" barWidth="5" penWidth="0" height="15" opacity="1" enabled="0" rotationOffset="270" scaleBasedVisibility="0" labelPlacementMethod="XHeight" minScaleDenominator="0" lineSizeType="MM" scaleDependency="Area" diagramOrientation="Up" sizeScale="3x:0,0,0,0,0,0" lineSizeScale="3x:0,0,0,0,0,0" minimumSize="0" backgroundColor="#ffffff">
<fontProperties style="" description="MS Shell Dlg 2,8.1,-1,5,50,0,0,0,0,0"/>
</DiagramCategory>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings showAll="1" priority="0" zIndex="0" obstacle="0" dist="0" placement="0" linePlacementFlags="18">
<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/>
</geometryOptions>
<fieldConfiguration>
<field name="uuid">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field name="number">
<editWidget type="Range">
<config>
<Option/>
</config>
</editWidget>
</field>
<field name="shortname">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field name="longname">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field name="km">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field name="agency">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field name="water">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
</fieldConfiguration>
<aliases>
<alias index="0" name="" field="uuid"/>
<alias index="1" name="" field="number"/>
<alias index="2" name="" field="shortname"/>
<alias index="3" name="" field="longname"/>
<alias index="4" name="" field="km"/>
<alias index="5" name="" field="agency"/>
<alias index="6" name="" field="water"/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
<defaults>
<default applyOnUpdate="0" field="uuid" expression=""/>
<default applyOnUpdate="0" field="number" expression=""/>
<default applyOnUpdate="0" field="shortname" expression=""/>
<default applyOnUpdate="0" field="longname" expression=""/>
<default applyOnUpdate="0" field="km" expression=""/>
<default applyOnUpdate="0" field="agency" expression=""/>
<default applyOnUpdate="0" field="water" expression=""/>
</defaults>
<constraints>
<constraint notnull_strength="0" exp_strength="0" field="uuid" unique_strength="0" constraints="0"/>
<constraint notnull_strength="0" exp_strength="0" field="number" unique_strength="0" constraints="0"/>
<constraint notnull_strength="0" exp_strength="0" field="shortname" unique_strength="0" constraints="0"/>
<constraint notnull_strength="0" exp_strength="0" field="longname" unique_strength="0" constraints="0"/>
<constraint notnull_strength="0" exp_strength="0" field="km" unique_strength="0" constraints="0"/>
<constraint notnull_strength="0" exp_strength="0" field="agency" unique_strength="0" constraints="0"/>
<constraint notnull_strength="0" exp_strength="0" field="water" unique_strength="0" constraints="0"/>
</constraints>
<constraintExpressions>
<constraint desc="" exp="" field="uuid"/>
<constraint desc="" exp="" field="number"/>
<constraint desc="" exp="" field="shortname"/>
<constraint desc="" exp="" field="longname"/>
<constraint desc="" exp="" field="km"/>
<constraint desc="" exp="" field="agency"/>
<constraint desc="" exp="" field="water"/>
</constraintExpressions>
<expressionfields/>
<attributeactions>
<defaultAction key="Canvas" value="{00000000-0000-0000-0000-000000000000}"/>
</attributeactions>
<attributetableconfig sortOrder="0" actionWidgetStyle="dropDown" sortExpression="">
<columns>
<column name="uuid" hidden="0" width="-1" type="field"/>
<column name="number" hidden="0" width="-1" type="field"/>
<column name="shortname" hidden="0" width="-1" type="field"/>
<column name="longname" hidden="0" width="-1" type="field"/>
<column name="km" hidden="0" width="-1" type="field"/>
<column name="agency" hidden="0" width="-1" type="field"/>
<column name="water" hidden="0" width="-1" type="field"/>
<column hidden="1" width="-1" type="actions"/>
</columns>
</attributetableconfig>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
<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="agency" editable="1"/>
<field name="km" editable="1"/>
<field name="longname" editable="1"/>
<field name="number" editable="1"/>
<field name="shortname" editable="1"/>
<field name="uuid" editable="1"/>
<field name="water" editable="1"/>
</editable>
<labelOnTop>
<field name="agency" labelOnTop="0"/>
<field name="km" labelOnTop="0"/>
<field name="longname" labelOnTop="0"/>
<field name="number" labelOnTop="0"/>
<field name="shortname" labelOnTop="0"/>
<field name="uuid" labelOnTop="0"/>
<field name="water" labelOnTop="0"/>
</labelOnTop>
<widgets/>
<previewExpression>uuid</previewExpression>
<mapTip></mapTip>
<layerGeometryType>0</layerGeometryType>
</qgis>

View File

@ -1,243 +0,0 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis maxScale="0" labelsEnabled="1" readOnly="0" hasScaleBasedVisibilityFlag="0" styleCategories="AllStyleCategories" simplifyLocal="1" minScale="1e+08" simplifyMaxScale="1" simplifyAlgorithm="0" version="3.4.6-Madeira" simplifyDrawingTol="1" simplifyDrawingHints="0">
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<renderer-v2 symbollevels="0" enableorderby="0" forceraster="0" type="singleSymbol">
<symbols>
<symbol clip_to_extent="1" alpha="1" name="0" type="marker" force_rhr="0">
<layer enabled="1" pass="0" locked="0" class="SimpleMarker">
<prop v="0" k="angle"/>
<prop v="31,28,175,255" k="color"/>
<prop v="1" k="horizontal_anchor_point"/>
<prop v="bevel" k="joinstyle"/>
<prop v="circle" k="name"/>
<prop v="0,0" k="offset"/>
<prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
<prop v="MM" k="offset_unit"/>
<prop v="35,35,35,255" k="outline_color"/>
<prop v="solid" k="outline_style"/>
<prop v="0" k="outline_width"/>
<prop v="3x:0,0,0,0,0,0" k="outline_width_map_unit_scale"/>
<prop v="MM" k="outline_width_unit"/>
<prop v="diameter" k="scale_method"/>
<prop v="2" k="size"/>
<prop v="3x:0,0,0,0,0,0" k="size_map_unit_scale"/>
<prop v="MM" k="size_unit"/>
<prop v="1" k="vertical_anchor_point"/>
<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>
<labeling type="simple">
<settings>
<text-style namedStyle="Regular" fontUnderline="0" fontWordSpacing="0" fontStrikeout="0" fontWeight="25" fontSize="10" isExpression="0" blendMode="0" fontFamily="Calibri Light" fontLetterSpacing="0" textColor="0,0,0,255" previewBkgrdColor="#ffffff" fontSizeUnit="Point" multilineHeight="1" fieldName="shortname" fontSizeMapUnitScale="3x:0,0,0,0,0,0" textOpacity="1" fontCapitals="0" useSubstitutions="0" fontItalic="0">
<text-buffer bufferSize="1" bufferJoinStyle="128" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferColor="255,255,255,255" bufferDraw="1" bufferNoFill="1" bufferOpacity="1" bufferSizeUnits="MM" bufferBlendMode="0"/>
<background shapeRadiiY="0" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeOpacity="1" shapeDraw="0" shapeType="0" shapeSVGFile="" shapeSizeY="0" shapeSizeUnit="MM" shapeOffsetUnit="MM" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeOffsetX="0" shapeJoinStyle="64" shapeRotationType="0" shapeSizeX="0" shapeRotation="0" shapeBorderWidth="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeBlendMode="0" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeOffsetY="0" shapeBorderColor="128,128,128,255" shapeRadiiUnit="MM" shapeSizeType="0" shapeFillColor="255,255,255,255" shapeBorderWidthUnit="MM" shapeRadiiX="0"/>
<shadow shadowRadius="1.5" shadowBlendMode="6" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowOpacity="0.7" shadowDraw="0" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowScale="100" shadowUnder="0" shadowRadiusAlphaOnly="0" shadowOffsetAngle="135" shadowOffsetUnit="MM" shadowRadiusUnit="MM" shadowOffsetDist="1" shadowOffsetGlobal="1" shadowColor="0,0,0,255"/>
<substitutions/>
</text-style>
<text-format addDirectionSymbol="0" placeDirectionSymbol="0" multilineAlign="3" plussign="0" leftDirectionSymbol="&lt;" rightDirectionSymbol=">" formatNumbers="0" reverseDirectionSymbol="0" decimals="3" autoWrapLength="0" wrapChar="" useMaxLineLengthForAutoWrap="1"/>
<placement repeatDistanceMapUnitScale="3x:0,0,0,0,0,0" fitInPolygonOnly="0" quadOffset="1" distUnits="MM" yOffset="0" priority="5" placement="1" repeatDistance="0" offsetType="0" preserveRotation="1" offsetUnits="MM" maxCurvedCharAngleOut="-25" rotationAngle="0" repeatDistanceUnits="MM" maxCurvedCharAngleIn="25" centroidWhole="0" dist="0" xOffset="0" placementFlags="10" predefinedPositionOrder="TR,TL,BR,BL,R,L,TSR,BSR" centroidInside="0" labelOffsetMapUnitScale="3x:0,0,0,0,0,0" distMapUnitScale="3x:0,0,0,0,0,0"/>
<rendering maxNumLabels="2000" obstacle="1" fontLimitPixelSize="0" obstacleFactor="1" minFeatureSize="0" drawLabels="1" scaleMin="0" upsidedownLabels="0" fontMaxPixelSize="10000" zIndex="0" obstacleType="0" fontMinPixelSize="3" scaleMax="0" limitNumLabels="0" displayAll="0" labelPerPart="0" scaleVisibility="0" mergeLines="0"/>
<dd_properties>
<Option type="Map">
<Option name="name" type="QString" value=""/>
<Option name="properties"/>
<Option name="type" type="QString" value="collection"/>
</Option>
</dd_properties>
</settings>
</labeling>
<customproperties>
<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 penAlpha="255" penColor="#000000" maxScaleDenominator="1e+08" sizeType="MM" backgroundAlpha="255" width="15" barWidth="5" penWidth="0" height="15" opacity="1" enabled="0" rotationOffset="270" scaleBasedVisibility="0" labelPlacementMethod="XHeight" minScaleDenominator="0" lineSizeType="MM" scaleDependency="Area" diagramOrientation="Up" sizeScale="3x:0,0,0,0,0,0" lineSizeScale="3x:0,0,0,0,0,0" minimumSize="0" backgroundColor="#ffffff">
<fontProperties style="" description="MS Shell Dlg 2,8.1,-1,5,50,0,0,0,0,0"/>
</DiagramCategory>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings showAll="1" priority="0" zIndex="0" obstacle="0" dist="0" placement="0" linePlacementFlags="18">
<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/>
</geometryOptions>
<fieldConfiguration>
<field name="uuid">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field name="shortname">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field name="timestamp">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field name="value">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field name="trend">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field name="stateMnwMhw">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field name="stateNswHsw">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
</fieldConfiguration>
<aliases>
<alias index="0" name="" field="uuid"/>
<alias index="1" name="" field="shortname"/>
<alias index="2" name="" field="timestamp"/>
<alias index="3" name="" field="value"/>
<alias index="4" name="" field="trend"/>
<alias index="5" name="" field="stateMnwMhw"/>
<alias index="6" name="" field="stateNswHsw"/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
<defaults>
<default applyOnUpdate="0" field="uuid" expression=""/>
<default applyOnUpdate="0" field="shortname" expression=""/>
<default applyOnUpdate="0" field="timestamp" expression=""/>
<default applyOnUpdate="0" field="value" expression=""/>
<default applyOnUpdate="0" field="trend" expression=""/>
<default applyOnUpdate="0" field="stateMnwMhw" expression=""/>
<default applyOnUpdate="0" field="stateNswHsw" expression=""/>
</defaults>
<constraints>
<constraint notnull_strength="0" exp_strength="0" field="uuid" unique_strength="0" constraints="0"/>
<constraint notnull_strength="0" exp_strength="0" field="shortname" unique_strength="0" constraints="0"/>
<constraint notnull_strength="0" exp_strength="0" field="timestamp" unique_strength="0" constraints="0"/>
<constraint notnull_strength="0" exp_strength="0" field="value" unique_strength="0" constraints="0"/>
<constraint notnull_strength="0" exp_strength="0" field="trend" unique_strength="0" constraints="0"/>
<constraint notnull_strength="0" exp_strength="0" field="stateMnwMhw" unique_strength="0" constraints="0"/>
<constraint notnull_strength="0" exp_strength="0" field="stateNswHsw" unique_strength="0" constraints="0"/>
</constraints>
<constraintExpressions>
<constraint desc="" exp="" field="uuid"/>
<constraint desc="" exp="" field="shortname"/>
<constraint desc="" exp="" field="timestamp"/>
<constraint desc="" exp="" field="value"/>
<constraint desc="" exp="" field="trend"/>
<constraint desc="" exp="" field="stateMnwMhw"/>
<constraint desc="" exp="" field="stateNswHsw"/>
</constraintExpressions>
<expressionfields/>
<attributeactions>
<defaultAction key="Canvas" value="{00000000-0000-0000-0000-000000000000}"/>
</attributeactions>
<attributetableconfig sortOrder="0" actionWidgetStyle="dropDown" sortExpression="">
<columns>
<column name="uuid" hidden="0" width="-1" type="field"/>
<column name="shortname" hidden="0" width="-1" type="field"/>
<column name="timestamp" hidden="0" width="-1" type="field"/>
<column name="value" hidden="0" width="-1" type="field"/>
<column name="trend" hidden="0" width="-1" type="field"/>
<column name="stateMnwMhw" hidden="0" width="-1" type="field"/>
<column name="stateNswHsw" hidden="0" width="-1" type="field"/>
<column hidden="1" width="-1" type="actions"/>
</columns>
</attributetableconfig>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
<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="shortname" editable="1"/>
<field name="stateMnwMhw" editable="1"/>
<field name="stateNswHsw" editable="1"/>
<field name="timestamp" editable="1"/>
<field name="trend" editable="1"/>
<field name="uuid" editable="1"/>
<field name="value" editable="1"/>
</editable>
<labelOnTop>
<field name="shortname" labelOnTop="0"/>
<field name="stateMnwMhw" labelOnTop="0"/>
<field name="stateNswHsw" labelOnTop="0"/>
<field name="timestamp" labelOnTop="0"/>
<field name="trend" labelOnTop="0"/>
<field name="uuid" labelOnTop="0"/>
<field name="value" labelOnTop="0"/>
</labelOnTop>
<widgets/>
<previewExpression>uuid</previewExpression>
<mapTip></mapTip>
<layerGeometryType>0</layerGeometryType>
</qgis>

545
styles/stations.qml Normal file
View File

@ -0,0 +1,545 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis autoRefreshMode="Disabled" labelsEnabled="1" simplifyDrawingTol="1" simplifyMaxScale="1" version="3.44.3-Solothurn" styleCategories="AllStyleCategories" readOnly="0" maxScale="0" autoRefreshTime="0" simplifyDrawingHints="0" symbologyReferenceScale="-1" simplifyAlgorithm="0" hasScaleBasedVisibilityFlag="0" minScale="100000000" simplifyLocal="1">
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
<Private>0</Private>
</flags>
<temporal mode="0" startField="" endExpression="" endField="" durationUnit="min" enabled="0" startExpression="" accumulate="0" durationField="number" limitMode="0" fixedDuration="0">
<fixedRange>
<start></start>
<end></end>
</fixedRange>
</temporal>
<elevation extrusionEnabled="0" customToleranceEnabled="0" binding="Centroid" symbology="Line" respectLayerSymbol="1" zscale="1" extrusion="0" showMarkerSymbolInSurfacePlots="0" type="IndividualFeatures" clamping="Terrain" zoffset="0">
<data-defined-properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data-defined-properties>
<profileLineSymbol>
<symbol force_rhr="0" clip_to_extent="1" name="" alpha="1" type="line" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleLine" pass="0" id="{76ea39a9-58dc-4293-9c0a-708289975213}">
<Option type="Map">
<Option value="0" name="align_dash_pattern" type="QString"/>
<Option value="square" name="capstyle" type="QString"/>
<Option value="5;2" name="customdash" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="customdash_map_unit_scale" type="QString"/>
<Option value="MM" name="customdash_unit" type="QString"/>
<Option value="0" name="dash_pattern_offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="dash_pattern_offset_map_unit_scale" type="QString"/>
<Option value="MM" name="dash_pattern_offset_unit" type="QString"/>
<Option value="0" name="draw_inside_polygon" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="164,113,88,255,rgb:0.6431373,0.4431373,0.345098,1" name="line_color" type="QString"/>
<Option value="solid" name="line_style" type="QString"/>
<Option value="0.6" name="line_width" type="QString"/>
<Option value="MM" name="line_width_unit" type="QString"/>
<Option value="0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="0" name="ring_filter" type="QString"/>
<Option value="0" name="trim_distance_end" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="trim_distance_end_map_unit_scale" type="QString"/>
<Option value="MM" name="trim_distance_end_unit" type="QString"/>
<Option value="0" name="trim_distance_start" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="trim_distance_start_map_unit_scale" type="QString"/>
<Option value="MM" name="trim_distance_start_unit" type="QString"/>
<Option value="0" name="tweak_dash_pattern_on_corners" type="QString"/>
<Option value="0" name="use_custom_dash" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="width_map_unit_scale" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</profileLineSymbol>
<profileFillSymbol>
<symbol force_rhr="0" clip_to_extent="1" name="" alpha="1" type="fill" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleFill" pass="0" id="{884cf21d-620b-4d32-8432-b75a2eee9d3c}">
<Option type="Map">
<Option value="3x:0,0,0,0,0,0" name="border_width_map_unit_scale" type="QString"/>
<Option value="164,113,88,255,rgb:0.6431373,0.4431373,0.345098,1" name="color" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="117,81,63,255,rgb:0.4593729,0.3165332,0.2464942,1" name="outline_color" type="QString"/>
<Option value="solid" name="outline_style" type="QString"/>
<Option value="0.2" name="outline_width" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="solid" name="style" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</profileFillSymbol>
<profileMarkerSymbol>
<symbol force_rhr="0" clip_to_extent="1" name="" alpha="1" type="marker" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleMarker" pass="0" id="{8536a04d-f7f7-4fb4-97fd-29d00b9109b6}">
<Option type="Map">
<Option value="0" name="angle" type="QString"/>
<Option value="square" name="cap_style" type="QString"/>
<Option value="164,113,88,255,rgb:0.6431373,0.4431373,0.345098,1" name="color" type="QString"/>
<Option value="1" name="horizontal_anchor_point" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="diamond" name="name" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="117,81,63,255,rgb:0.4593729,0.3165332,0.2464942,1" name="outline_color" type="QString"/>
<Option value="solid" name="outline_style" type="QString"/>
<Option value="0.2" name="outline_width" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="diameter" name="scale_method" type="QString"/>
<Option value="3" name="size" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="size_map_unit_scale" type="QString"/>
<Option value="MM" name="size_unit" type="QString"/>
<Option value="1" name="vertical_anchor_point" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</profileMarkerSymbol>
</elevation>
<renderer-v2 forceraster="0" enableorderby="0" type="singleSymbol" referencescale="-1" symbollevels="0">
<symbols>
<symbol force_rhr="0" clip_to_extent="1" name="0" alpha="1" type="marker" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleMarker" pass="0" id="{6e27ccd0-7148-464a-bf2e-3c79e8b865fa}">
<Option type="Map">
<Option value="0" name="angle" type="QString"/>
<Option value="square" name="cap_style" type="QString"/>
<Option value="219,30,42,255,rgb:0.8588235,0.1176471,0.1647059,1" name="color" type="QString"/>
<Option value="1" name="horizontal_anchor_point" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="triangle" name="name" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="128,17,25,255,rgb:0.5019608,0.0666667,0.0980392,1" name="outline_color" type="QString"/>
<Option value="solid" name="outline_style" type="QString"/>
<Option value="0.4" name="outline_width" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="diameter" name="scale_method" type="QString"/>
<Option value="4" name="size" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="size_map_unit_scale" type="QString"/>
<Option value="MM" name="size_unit" type="QString"/>
<Option value="1" name="vertical_anchor_point" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</symbols>
<rotation/>
<sizescale/>
<data-defined-properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data-defined-properties>
</renderer-v2>
<selection mode="Default">
<selectionColor invalid="1"/>
<selectionSymbol>
<symbol force_rhr="0" clip_to_extent="1" name="" alpha="1" type="marker" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleMarker" pass="0" id="{85d39adc-e056-4b00-b3b7-1101a233cae4}">
<Option type="Map">
<Option value="0" name="angle" type="QString"/>
<Option value="square" name="cap_style" type="QString"/>
<Option value="255,0,0,255,rgb:1,0,0,1" name="color" type="QString"/>
<Option value="1" name="horizontal_anchor_point" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="circle" name="name" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="35,35,35,255,rgb:0.1372549,0.1372549,0.1372549,1" name="outline_color" type="QString"/>
<Option value="solid" name="outline_style" type="QString"/>
<Option value="0" name="outline_width" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="diameter" name="scale_method" type="QString"/>
<Option value="2" name="size" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="size_map_unit_scale" type="QString"/>
<Option value="MM" name="size_unit" type="QString"/>
<Option value="1" name="vertical_anchor_point" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</selectionSymbol>
</selection>
<labeling type="simple">
<settings calloutType="simple">
<text-style textColor="255,50,50,255,rgb:1,0.1960784,0.1960784,1" fontItalic="0" forcedItalic="0" fieldName="concat(&quot;shortname&quot;)" tabStopDistanceUnit="Point" legendString="Aa" fontSize="10" multilineHeight="1" multilineHeightUnit="Percentage" isExpression="1" fontFamily="Open Sans" previewBkgrdColor="255,255,255,255,rgb:1,1,1,1" fontSizeUnit="Point" tabStopDistance="80" forcedBold="0" textOpacity="1" fontUnderline="0" blendMode="0" useSubstitutions="0" fontSizeMapUnitScale="3x:0,0,0,0,0,0" textOrientation="horizontal" allowHtml="0" capitalization="0" fontWeight="50" fontStrikeout="0" fontKerning="1" fontLetterSpacing="0" namedStyle="Regular" tabStopDistanceMapUnitScale="3x:0,0,0,0,0,0" fontWordSpacing="0">
<families/>
<text-buffer bufferNoFill="1" bufferBlendMode="0" bufferJoinStyle="128" bufferSizeUnits="MM" bufferDraw="1" bufferSize="1" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferOpacity="1" bufferColor="250,250,250,255,rgb:0.9803922,0.9803922,0.9803922,1"/>
<text-mask maskEnabled="0" maskSize2="1.5" maskOpacity="1" maskSize="1.5" maskedSymbolLayers="" maskSizeUnits="MM" maskType="0" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskJoinStyle="128"/>
<background shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeBorderWidthUnit="Point" shapeRotationType="0" shapeOffsetY="0" shapeOpacity="1" shapeSizeX="0" shapeRadiiX="0" shapeFillColor="255,255,255,255,rgb:1,1,1,1" shapeBorderColor="128,128,128,255,rgb:0.5019608,0.5019608,0.5019608,1" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRotation="0" shapeRadiiUnit="Point" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeSizeUnit="Point" shapeSizeType="0" shapeRadiiY="0" shapeBorderWidth="0" shapeType="0" shapeSizeY="0" shapeDraw="0" shapeOffsetUnit="Point" shapeOffsetX="0" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeBlendMode="0" shapeJoinStyle="64" shapeSVGFile="">
<symbol force_rhr="0" clip_to_extent="1" name="markerSymbol" alpha="1" type="marker" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleMarker" pass="0" id="">
<Option type="Map">
<Option value="0" name="angle" type="QString"/>
<Option value="square" name="cap_style" type="QString"/>
<Option value="114,155,111,255,rgb:0.4470588,0.6078431,0.4352941,1" name="color" type="QString"/>
<Option value="1" name="horizontal_anchor_point" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="circle" name="name" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="35,35,35,255,rgb:0.1372549,0.1372549,0.1372549,1" name="outline_color" type="QString"/>
<Option value="solid" name="outline_style" type="QString"/>
<Option value="0" name="outline_width" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="diameter" name="scale_method" type="QString"/>
<Option value="2" name="size" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="size_map_unit_scale" type="QString"/>
<Option value="MM" name="size_unit" type="QString"/>
<Option value="1" name="vertical_anchor_point" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
<symbol force_rhr="0" clip_to_extent="1" name="fillSymbol" alpha="1" type="fill" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleFill" pass="0" id="">
<Option type="Map">
<Option value="3x:0,0,0,0,0,0" name="border_width_map_unit_scale" type="QString"/>
<Option value="255,255,255,255,rgb:1,1,1,1" name="color" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="128,128,128,255,rgb:0.5019608,0.5019608,0.5019608,1" name="outline_color" type="QString"/>
<Option value="no" name="outline_style" type="QString"/>
<Option value="0" name="outline_width" type="QString"/>
<Option value="Point" name="outline_width_unit" type="QString"/>
<Option value="solid" name="style" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</background>
<shadow shadowOffsetUnit="MM" shadowDraw="0" shadowOffsetDist="1" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowScale="100" shadowColor="0,0,0,255,rgb:0,0,0,1" shadowOffsetGlobal="1" shadowRadius="1.5" shadowOffsetAngle="135" shadowRadiusAlphaOnly="0" shadowOpacity="0.69999999999999996" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowBlendMode="6" shadowUnder="0" shadowRadiusUnit="MM"/>
<dd_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</dd_properties>
<substitutions/>
</text-style>
<text-format reverseDirectionSymbol="0" autoWrapLength="0" useMaxLineLengthForAutoWrap="1" decimals="3" wrapChar="" addDirectionSymbol="0" formatNumbers="0" plussign="0" leftDirectionSymbol="&lt;" rightDirectionSymbol=">" multilineAlign="3" placeDirectionSymbol="0"/>
<placement lineAnchorPercent="0.5" preserveRotation="1" prioritization="PreferCloser" dist="0" placement="0" repeatDistance="0" polygonPlacementFlags="2" overrunDistanceUnit="MM" maximumDistance="0" rotationAngle="0" centroidInside="0" maximumDistanceUnit="MM" maxCurvedCharAngleIn="25" offsetType="0" lineAnchorTextPoint="FollowPlacement" repeatDistanceUnits="MM" yOffset="0" centroidWhole="0" geometryGeneratorType="PointGeometry" geometryGeneratorEnabled="0" fitInPolygonOnly="0" predefinedPositionOrder="TR,TL,BR,BL,R,L,TSR,BSR" distUnits="MM" maxCurvedCharAngleOut="-25" offsetUnits="MM" repeatDistanceMapUnitScale="3x:0,0,0,0,0,0" distMapUnitScale="3x:0,0,0,0,0,0" rotationUnit="AngleDegrees" layerType="PointGeometry" overrunDistanceMapUnitScale="3x:0,0,0,0,0,0" overlapHandling="PreventOverlap" priority="5" lineAnchorClipping="0" quadOffset="4" geometryGenerator="" overrunDistance="0" maximumDistanceMapUnitScale="3x:0,0,0,0,0,0" allowDegraded="0" placementFlags="10" labelOffsetMapUnitScale="3x:0,0,0,0,0,0" lineAnchorType="0" xOffset="0"/>
<rendering mergeLines="0" scaleMin="0" maxNumLabels="2000" zIndex="0" scaleVisibility="0" limitNumLabels="0" obstacleType="1" obstacle="1" fontMinPixelSize="3" minFeatureSize="0" upsidedownLabels="0" obstacleFactor="1" fontLimitPixelSize="0" drawLabels="1" unplacedVisibility="0" fontMaxPixelSize="10000" labelPerPart="0" scaleMax="0"/>
<dd_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</dd_properties>
<callout type="simple">
<Option type="Map">
<Option value="pole_of_inaccessibility" name="anchorPoint" type="QString"/>
<Option value="0" name="blendMode" type="int"/>
<Option name="ddProperties" type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
<Option value="false" name="drawToAllParts" type="bool"/>
<Option value="0" name="enabled" type="QString"/>
<Option value="point_on_exterior" name="labelAnchorPoint" type="QString"/>
<Option value="&lt;symbol force_rhr=&quot;0&quot; clip_to_extent=&quot;1&quot; name=&quot;symbol&quot; alpha=&quot;1&quot; type=&quot;line&quot; is_animated=&quot;0&quot; frame_rate=&quot;10&quot;>&lt;data_defined_properties>&lt;Option type=&quot;Map&quot;>&lt;Option value=&quot;&quot; name=&quot;name&quot; type=&quot;QString&quot;/>&lt;Option name=&quot;properties&quot;/>&lt;Option value=&quot;collection&quot; name=&quot;type&quot; type=&quot;QString&quot;/>&lt;/Option>&lt;/data_defined_properties>&lt;layer locked=&quot;0&quot; enabled=&quot;1&quot; class=&quot;SimpleLine&quot; pass=&quot;0&quot; id=&quot;{842d5687-ab2d-4032-a3a1-8be39fed6707}&quot;>&lt;Option type=&quot;Map&quot;>&lt;Option value=&quot;0&quot; name=&quot;align_dash_pattern&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;square&quot; name=&quot;capstyle&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;5;2&quot; name=&quot;customdash&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;3x:0,0,0,0,0,0&quot; name=&quot;customdash_map_unit_scale&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;MM&quot; name=&quot;customdash_unit&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;dash_pattern_offset&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;3x:0,0,0,0,0,0&quot; name=&quot;dash_pattern_offset_map_unit_scale&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;MM&quot; name=&quot;dash_pattern_offset_unit&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;draw_inside_polygon&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;bevel&quot; name=&quot;joinstyle&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;60,60,60,255,rgb:0.2352941,0.2352941,0.2352941,1&quot; name=&quot;line_color&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;solid&quot; name=&quot;line_style&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0.3&quot; name=&quot;line_width&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;MM&quot; name=&quot;line_width_unit&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;offset&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;3x:0,0,0,0,0,0&quot; name=&quot;offset_map_unit_scale&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;MM&quot; name=&quot;offset_unit&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;ring_filter&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;trim_distance_end&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;3x:0,0,0,0,0,0&quot; name=&quot;trim_distance_end_map_unit_scale&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;MM&quot; name=&quot;trim_distance_end_unit&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;trim_distance_start&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;3x:0,0,0,0,0,0&quot; name=&quot;trim_distance_start_map_unit_scale&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;MM&quot; name=&quot;trim_distance_start_unit&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;tweak_dash_pattern_on_corners&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;use_custom_dash&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;3x:0,0,0,0,0,0&quot; name=&quot;width_map_unit_scale&quot; type=&quot;QString&quot;/>&lt;/Option>&lt;data_defined_properties>&lt;Option type=&quot;Map&quot;>&lt;Option value=&quot;&quot; name=&quot;name&quot; type=&quot;QString&quot;/>&lt;Option name=&quot;properties&quot;/>&lt;Option value=&quot;collection&quot; name=&quot;type&quot; type=&quot;QString&quot;/>&lt;/Option>&lt;/data_defined_properties>&lt;/layer>&lt;/symbol>" name="lineSymbol" type="QString"/>
<Option value="0" name="minLength" type="double"/>
<Option value="3x:0,0,0,0,0,0" name="minLengthMapUnitScale" type="QString"/>
<Option value="MM" name="minLengthUnit" type="QString"/>
<Option value="0" name="offsetFromAnchor" type="double"/>
<Option value="3x:0,0,0,0,0,0" name="offsetFromAnchorMapUnitScale" type="QString"/>
<Option value="MM" name="offsetFromAnchorUnit" type="QString"/>
<Option value="0" name="offsetFromLabel" type="double"/>
<Option value="3x:0,0,0,0,0,0" name="offsetFromLabelMapUnitScale" type="QString"/>
<Option value="MM" name="offsetFromLabelUnit" type="QString"/>
</Option>
</callout>
</settings>
</labeling>
<customproperties>
<Option type="Map">
<Option value="0" name="embeddedWidgets/count" type="int"/>
<Option name="variableNames"/>
<Option name="variableValues"/>
</Option>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerOpacity>1</layerOpacity>
<geometryOptions removeDuplicateNodes="0" geometryPrecision="0">
<activeChecks/>
<checkConfiguration/>
</geometryOptions>
<legend type="default-vector" showLabelLegend="0"/>
<referencedLayers/>
<referencingLayers/>
<fieldConfiguration>
<field configurationFlags="NoFlag" name="uuid">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="number">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="shortname">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="longname">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="km">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="agency">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="water">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
</fieldConfiguration>
<aliases>
<alias index="0" name="" field="uuid"/>
<alias index="1" name="" field="number"/>
<alias index="2" name="" field="shortname"/>
<alias index="3" name="" field="longname"/>
<alias index="4" name="" field="km"/>
<alias index="5" name="" field="agency"/>
<alias index="6" name="" field="water"/>
</aliases>
<defaults>
<default expression="" applyOnUpdate="0" field="uuid"/>
<default expression="" applyOnUpdate="0" field="number"/>
<default expression="" applyOnUpdate="0" field="shortname"/>
<default expression="" applyOnUpdate="0" field="longname"/>
<default expression="" applyOnUpdate="0" field="km"/>
<default expression="" applyOnUpdate="0" field="agency"/>
<default expression="" applyOnUpdate="0" field="water"/>
</defaults>
<constraints>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="uuid"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="number"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="shortname"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="longname"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="km"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="agency"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="water"/>
</constraints>
<constraintExpressions>
<constraint exp="" desc="" field="uuid"/>
<constraint exp="" desc="" field="number"/>
<constraint exp="" desc="" field="shortname"/>
<constraint exp="" desc="" field="longname"/>
<constraint exp="" desc="" field="km"/>
<constraint exp="" desc="" field="agency"/>
<constraint exp="" desc="" field="water"/>
</constraintExpressions>
<expressionfields/>
<attributeactions>
<defaultAction value="{00000000-0000-0000-0000-000000000000}" key="Canvas"/>
</attributeactions>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
<columns>
<column hidden="0" name="uuid" type="field" width="-1"/>
<column hidden="0" name="number" type="field" width="-1"/>
<column hidden="0" name="shortname" type="field" width="-1"/>
<column hidden="0" name="longname" type="field" width="-1"/>
<column hidden="0" name="km" type="field" width="-1"/>
<column hidden="0" name="agency" type="field" width="-1"/>
<column hidden="0" name="water" type="field" width="-1"/>
<column hidden="1" type="actions" width="-1"/>
</columns>
</attributetableconfig>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
<storedexpressions/>
<editform tolerant="1"></editform>
<editforminit/>
<editforminitcodesource>0</editforminitcodesource>
<editforminitfilepath></editforminitfilepath>
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
"""
QGIS-Formulare können eine Python-Funktion haben,, die aufgerufen wird, wenn sich das Formular öffnet
Diese Funktion kann verwendet werden um dem Formular Extralogik hinzuzufügen.
Der Name der Funktion wird im Feld "Python Init-Function" angegeben
Ein Beispiel folgt:
"""
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 editable="1" name="agency"/>
<field editable="1" name="km"/>
<field editable="1" name="longname"/>
<field editable="1" name="number"/>
<field editable="1" name="shortname"/>
<field editable="1" name="uuid"/>
<field editable="1" name="water"/>
</editable>
<labelOnTop>
<field name="agency" labelOnTop="0"/>
<field name="km" labelOnTop="0"/>
<field name="longname" labelOnTop="0"/>
<field name="number" labelOnTop="0"/>
<field name="shortname" labelOnTop="0"/>
<field name="uuid" labelOnTop="0"/>
<field name="water" labelOnTop="0"/>
</labelOnTop>
<reuseLastValue>
<field reuseLastValue="0" name="agency"/>
<field reuseLastValue="0" name="km"/>
<field reuseLastValue="0" name="longname"/>
<field reuseLastValue="0" name="number"/>
<field reuseLastValue="0" name="shortname"/>
<field reuseLastValue="0" name="uuid"/>
<field reuseLastValue="0" name="water"/>
</reuseLastValue>
<dataDefinedFieldProperties/>
<widgets/>
<previewExpression>"shortname"</previewExpression>
<mapTip enabled="1"></mapTip>
<layerGeometryType>0</layerGeometryType>
</qgis>

575
styles/waterlevels.qml Normal file
View File

@ -0,0 +1,575 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis autoRefreshMode="Disabled" labelsEnabled="1" simplifyDrawingTol="1" simplifyMaxScale="1" version="3.44.3-Solothurn" styleCategories="AllStyleCategories" readOnly="0" maxScale="0" autoRefreshTime="0" simplifyDrawingHints="0" symbologyReferenceScale="-1" simplifyAlgorithm="0" hasScaleBasedVisibilityFlag="0" minScale="100000000" simplifyLocal="1">
<flags>
<Identifiable>1</Identifiable>
<Removable>1</Removable>
<Searchable>1</Searchable>
<Private>0</Private>
</flags>
<temporal mode="0" startField="timestamp" endExpression="" endField="" durationUnit="min" enabled="0" startExpression="" accumulate="0" durationField="number" limitMode="0" fixedDuration="0">
<fixedRange>
<start></start>
<end></end>
</fixedRange>
</temporal>
<elevation extrusionEnabled="0" customToleranceEnabled="0" binding="Centroid" symbology="Line" respectLayerSymbol="1" zscale="1" extrusion="0" showMarkerSymbolInSurfacePlots="0" type="IndividualFeatures" clamping="Terrain" zoffset="0">
<data-defined-properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data-defined-properties>
<profileLineSymbol>
<symbol force_rhr="0" clip_to_extent="1" name="" alpha="1" type="line" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleLine" pass="0" id="{22c3818c-762f-4ad6-af1d-7e890d25c2ff}">
<Option type="Map">
<Option value="0" name="align_dash_pattern" type="QString"/>
<Option value="square" name="capstyle" type="QString"/>
<Option value="5;2" name="customdash" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="customdash_map_unit_scale" type="QString"/>
<Option value="MM" name="customdash_unit" type="QString"/>
<Option value="0" name="dash_pattern_offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="dash_pattern_offset_map_unit_scale" type="QString"/>
<Option value="MM" name="dash_pattern_offset_unit" type="QString"/>
<Option value="0" name="draw_inside_polygon" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="141,90,153,255,rgb:0.5529412,0.3529412,0.6,1" name="line_color" type="QString"/>
<Option value="solid" name="line_style" type="QString"/>
<Option value="0.6" name="line_width" type="QString"/>
<Option value="MM" name="line_width_unit" type="QString"/>
<Option value="0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="0" name="ring_filter" type="QString"/>
<Option value="0" name="trim_distance_end" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="trim_distance_end_map_unit_scale" type="QString"/>
<Option value="MM" name="trim_distance_end_unit" type="QString"/>
<Option value="0" name="trim_distance_start" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="trim_distance_start_map_unit_scale" type="QString"/>
<Option value="MM" name="trim_distance_start_unit" type="QString"/>
<Option value="0" name="tweak_dash_pattern_on_corners" type="QString"/>
<Option value="0" name="use_custom_dash" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="width_map_unit_scale" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</profileLineSymbol>
<profileFillSymbol>
<symbol force_rhr="0" clip_to_extent="1" name="" alpha="1" type="fill" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleFill" pass="0" id="{f6e93f4c-4732-46bf-9b82-1b7798ea9584}">
<Option type="Map">
<Option value="3x:0,0,0,0,0,0" name="border_width_map_unit_scale" type="QString"/>
<Option value="141,90,153,255,rgb:0.5529412,0.3529412,0.6,1" name="color" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="101,64,109,255,rgb:0.3949493,0.2520943,0.4285649,1" name="outline_color" type="QString"/>
<Option value="solid" name="outline_style" type="QString"/>
<Option value="0.2" name="outline_width" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="solid" name="style" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</profileFillSymbol>
<profileMarkerSymbol>
<symbol force_rhr="0" clip_to_extent="1" name="" alpha="1" type="marker" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleMarker" pass="0" id="{c0a279d3-1571-48e9-9ecd-ef0f2743e2fc}">
<Option type="Map">
<Option value="0" name="angle" type="QString"/>
<Option value="square" name="cap_style" type="QString"/>
<Option value="141,90,153,255,rgb:0.5529412,0.3529412,0.6,1" name="color" type="QString"/>
<Option value="1" name="horizontal_anchor_point" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="diamond" name="name" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="101,64,109,255,rgb:0.3949493,0.2520943,0.4285649,1" name="outline_color" type="QString"/>
<Option value="solid" name="outline_style" type="QString"/>
<Option value="0.2" name="outline_width" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="diameter" name="scale_method" type="QString"/>
<Option value="3" name="size" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="size_map_unit_scale" type="QString"/>
<Option value="MM" name="size_unit" type="QString"/>
<Option value="1" name="vertical_anchor_point" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</profileMarkerSymbol>
</elevation>
<renderer-v2 forceraster="0" enableorderby="0" type="singleSymbol" referencescale="-1" symbollevels="0">
<symbols>
<symbol force_rhr="0" clip_to_extent="1" name="0" alpha="1" type="marker" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleMarker" pass="0" id="{9b537c92-5129-49e2-bd68-adcb414d704c}">
<Option type="Map">
<Option value="0" name="angle" type="QString"/>
<Option value="square" name="cap_style" type="QString"/>
<Option value="72,123,182,255,rgb:0.2823529,0.4823529,0.7137255,1" name="color" type="QString"/>
<Option value="1" name="horizontal_anchor_point" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="diamond" name="name" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="50,87,128,255,rgb:0.1960784,0.3411765,0.5019608,1" name="outline_color" type="QString"/>
<Option value="solid" name="outline_style" type="QString"/>
<Option value="0.4" name="outline_width" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="diameter" name="scale_method" type="QString"/>
<Option value="4.4" name="size" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="size_map_unit_scale" type="QString"/>
<Option value="MM" name="size_unit" type="QString"/>
<Option value="1" name="vertical_anchor_point" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</symbols>
<rotation/>
<sizescale/>
<data-defined-properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data-defined-properties>
</renderer-v2>
<selection mode="Default">
<selectionColor invalid="1"/>
<selectionSymbol>
<symbol force_rhr="0" clip_to_extent="1" name="" alpha="1" type="marker" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleMarker" pass="0" id="{5466e585-1a97-4124-b9c1-6f3cb8cb9470}">
<Option type="Map">
<Option value="0" name="angle" type="QString"/>
<Option value="square" name="cap_style" type="QString"/>
<Option value="255,0,0,255,rgb:1,0,0,1" name="color" type="QString"/>
<Option value="1" name="horizontal_anchor_point" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="circle" name="name" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="35,35,35,255,rgb:0.1372549,0.1372549,0.1372549,1" name="outline_color" type="QString"/>
<Option value="solid" name="outline_style" type="QString"/>
<Option value="0" name="outline_width" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="diameter" name="scale_method" type="QString"/>
<Option value="2" name="size" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="size_map_unit_scale" type="QString"/>
<Option value="MM" name="size_unit" type="QString"/>
<Option value="1" name="vertical_anchor_point" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</selectionSymbol>
</selection>
<labeling type="simple">
<settings calloutType="simple">
<text-style textColor="50,50,255,255,rgb:0.1960784,0.1960784,1,1" fontItalic="0" forcedItalic="0" fieldName="concat(&quot;shortname&quot;, ' / ', &quot;value&quot;, ' ', &quot;unit&quot;)" tabStopDistanceUnit="Point" legendString="Aa" fontSize="10" multilineHeight="1" multilineHeightUnit="Percentage" isExpression="1" fontFamily="Open Sans" previewBkgrdColor="255,255,255,255,rgb:1,1,1,1" fontSizeUnit="Point" tabStopDistance="80" forcedBold="0" textOpacity="1" fontUnderline="0" blendMode="0" useSubstitutions="0" fontSizeMapUnitScale="3x:0,0,0,0,0,0" textOrientation="horizontal" allowHtml="0" capitalization="0" fontWeight="50" fontStrikeout="0" fontKerning="1" fontLetterSpacing="0" namedStyle="Regular" tabStopDistanceMapUnitScale="3x:0,0,0,0,0,0" fontWordSpacing="0">
<families/>
<text-buffer bufferNoFill="1" bufferBlendMode="0" bufferJoinStyle="128" bufferSizeUnits="MM" bufferDraw="1" bufferSize="1" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferOpacity="1" bufferColor="255,255,255,255,hsv:0,0,1,1"/>
<text-mask maskEnabled="0" maskSize2="1.5" maskOpacity="1" maskSize="1.5" maskedSymbolLayers="" maskSizeUnits="MM" maskType="0" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskJoinStyle="128"/>
<background shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeBorderWidthUnit="Point" shapeRotationType="0" shapeOffsetY="0" shapeOpacity="1" shapeSizeX="0" shapeRadiiX="0" shapeFillColor="255,255,255,255,rgb:1,1,1,1" shapeBorderColor="128,128,128,255,rgb:0.5019608,0.5019608,0.5019608,1" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRotation="0" shapeRadiiUnit="Point" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeSizeUnit="Point" shapeSizeType="0" shapeRadiiY="0" shapeBorderWidth="0" shapeType="0" shapeSizeY="0" shapeDraw="0" shapeOffsetUnit="Point" shapeOffsetX="0" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeBlendMode="0" shapeJoinStyle="64" shapeSVGFile="">
<symbol force_rhr="0" clip_to_extent="1" name="markerSymbol" alpha="1" type="marker" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleMarker" pass="0" id="">
<Option type="Map">
<Option value="0" name="angle" type="QString"/>
<Option value="square" name="cap_style" type="QString"/>
<Option value="125,139,143,255,rgb:0.4901961,0.545098,0.5607843,1" name="color" type="QString"/>
<Option value="1" name="horizontal_anchor_point" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="circle" name="name" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="35,35,35,255,rgb:0.1372549,0.1372549,0.1372549,1" name="outline_color" type="QString"/>
<Option value="solid" name="outline_style" type="QString"/>
<Option value="0" name="outline_width" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="diameter" name="scale_method" type="QString"/>
<Option value="2" name="size" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="size_map_unit_scale" type="QString"/>
<Option value="MM" name="size_unit" type="QString"/>
<Option value="1" name="vertical_anchor_point" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
<symbol force_rhr="0" clip_to_extent="1" name="fillSymbol" alpha="1" type="fill" is_animated="0" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" enabled="1" class="SimpleFill" pass="0" id="">
<Option type="Map">
<Option value="3x:0,0,0,0,0,0" name="border_width_map_unit_scale" type="QString"/>
<Option value="255,255,255,255,rgb:1,1,1,1" name="color" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="128,128,128,255,rgb:0.5019608,0.5019608,0.5019608,1" name="outline_color" type="QString"/>
<Option value="no" name="outline_style" type="QString"/>
<Option value="0" name="outline_width" type="QString"/>
<Option value="Point" name="outline_width_unit" type="QString"/>
<Option value="solid" name="style" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</background>
<shadow shadowOffsetUnit="MM" shadowDraw="0" shadowOffsetDist="1" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowScale="100" shadowColor="0,0,0,255,rgb:0,0,0,1" shadowOffsetGlobal="1" shadowRadius="1.5" shadowOffsetAngle="135" shadowRadiusAlphaOnly="0" shadowOpacity="0.69999999999999996" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowBlendMode="6" shadowUnder="0" shadowRadiusUnit="MM"/>
<dd_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</dd_properties>
<substitutions/>
</text-style>
<text-format reverseDirectionSymbol="0" autoWrapLength="0" useMaxLineLengthForAutoWrap="1" decimals="3" wrapChar="" addDirectionSymbol="0" formatNumbers="0" plussign="0" leftDirectionSymbol="&lt;" rightDirectionSymbol=">" multilineAlign="3" placeDirectionSymbol="0"/>
<placement lineAnchorPercent="0.5" preserveRotation="1" prioritization="PreferCloser" dist="0" placement="0" repeatDistance="0" polygonPlacementFlags="2" overrunDistanceUnit="MM" maximumDistance="0" rotationAngle="0" centroidInside="0" maximumDistanceUnit="MM" maxCurvedCharAngleIn="25" offsetType="0" lineAnchorTextPoint="FollowPlacement" repeatDistanceUnits="MM" yOffset="0" centroidWhole="0" geometryGeneratorType="PointGeometry" geometryGeneratorEnabled="0" fitInPolygonOnly="0" predefinedPositionOrder="TR,TL,BR,BL,R,L,TSR,BSR" distUnits="MM" maxCurvedCharAngleOut="-25" offsetUnits="MM" repeatDistanceMapUnitScale="3x:0,0,0,0,0,0" distMapUnitScale="3x:0,0,0,0,0,0" rotationUnit="AngleDegrees" layerType="PointGeometry" overrunDistanceMapUnitScale="3x:0,0,0,0,0,0" overlapHandling="PreventOverlap" priority="5" lineAnchorClipping="0" quadOffset="4" geometryGenerator="" overrunDistance="0" maximumDistanceMapUnitScale="3x:0,0,0,0,0,0" allowDegraded="0" placementFlags="10" labelOffsetMapUnitScale="3x:0,0,0,0,0,0" lineAnchorType="0" xOffset="0"/>
<rendering mergeLines="0" scaleMin="0" maxNumLabels="2000" zIndex="0" scaleVisibility="0" limitNumLabels="0" obstacleType="1" obstacle="1" fontMinPixelSize="3" minFeatureSize="0" upsidedownLabels="0" obstacleFactor="1" fontLimitPixelSize="0" drawLabels="1" unplacedVisibility="0" fontMaxPixelSize="10000" labelPerPart="0" scaleMax="0"/>
<dd_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</dd_properties>
<callout type="simple">
<Option type="Map">
<Option value="pole_of_inaccessibility" name="anchorPoint" type="QString"/>
<Option value="0" name="blendMode" type="int"/>
<Option name="ddProperties" type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
<Option value="false" name="drawToAllParts" type="bool"/>
<Option value="0" name="enabled" type="QString"/>
<Option value="point_on_exterior" name="labelAnchorPoint" type="QString"/>
<Option value="&lt;symbol force_rhr=&quot;0&quot; clip_to_extent=&quot;1&quot; name=&quot;symbol&quot; alpha=&quot;1&quot; type=&quot;line&quot; is_animated=&quot;0&quot; frame_rate=&quot;10&quot;>&lt;data_defined_properties>&lt;Option type=&quot;Map&quot;>&lt;Option value=&quot;&quot; name=&quot;name&quot; type=&quot;QString&quot;/>&lt;Option name=&quot;properties&quot;/>&lt;Option value=&quot;collection&quot; name=&quot;type&quot; type=&quot;QString&quot;/>&lt;/Option>&lt;/data_defined_properties>&lt;layer locked=&quot;0&quot; enabled=&quot;1&quot; class=&quot;SimpleLine&quot; pass=&quot;0&quot; id=&quot;{0a30b836-1767-4ca1-b70d-a1412d7bd21e}&quot;>&lt;Option type=&quot;Map&quot;>&lt;Option value=&quot;0&quot; name=&quot;align_dash_pattern&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;square&quot; name=&quot;capstyle&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;5;2&quot; name=&quot;customdash&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;3x:0,0,0,0,0,0&quot; name=&quot;customdash_map_unit_scale&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;MM&quot; name=&quot;customdash_unit&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;dash_pattern_offset&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;3x:0,0,0,0,0,0&quot; name=&quot;dash_pattern_offset_map_unit_scale&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;MM&quot; name=&quot;dash_pattern_offset_unit&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;draw_inside_polygon&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;bevel&quot; name=&quot;joinstyle&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;60,60,60,255,rgb:0.2352941,0.2352941,0.2352941,1&quot; name=&quot;line_color&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;solid&quot; name=&quot;line_style&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0.3&quot; name=&quot;line_width&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;MM&quot; name=&quot;line_width_unit&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;offset&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;3x:0,0,0,0,0,0&quot; name=&quot;offset_map_unit_scale&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;MM&quot; name=&quot;offset_unit&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;ring_filter&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;trim_distance_end&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;3x:0,0,0,0,0,0&quot; name=&quot;trim_distance_end_map_unit_scale&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;MM&quot; name=&quot;trim_distance_end_unit&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;trim_distance_start&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;3x:0,0,0,0,0,0&quot; name=&quot;trim_distance_start_map_unit_scale&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;MM&quot; name=&quot;trim_distance_start_unit&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;tweak_dash_pattern_on_corners&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;0&quot; name=&quot;use_custom_dash&quot; type=&quot;QString&quot;/>&lt;Option value=&quot;3x:0,0,0,0,0,0&quot; name=&quot;width_map_unit_scale&quot; type=&quot;QString&quot;/>&lt;/Option>&lt;data_defined_properties>&lt;Option type=&quot;Map&quot;>&lt;Option value=&quot;&quot; name=&quot;name&quot; type=&quot;QString&quot;/>&lt;Option name=&quot;properties&quot;/>&lt;Option value=&quot;collection&quot; name=&quot;type&quot; type=&quot;QString&quot;/>&lt;/Option>&lt;/data_defined_properties>&lt;/layer>&lt;/symbol>" name="lineSymbol" type="QString"/>
<Option value="0" name="minLength" type="double"/>
<Option value="3x:0,0,0,0,0,0" name="minLengthMapUnitScale" type="QString"/>
<Option value="MM" name="minLengthUnit" type="QString"/>
<Option value="0" name="offsetFromAnchor" type="double"/>
<Option value="3x:0,0,0,0,0,0" name="offsetFromAnchorMapUnitScale" type="QString"/>
<Option value="MM" name="offsetFromAnchorUnit" type="QString"/>
<Option value="0" name="offsetFromLabel" type="double"/>
<Option value="3x:0,0,0,0,0,0" name="offsetFromLabelMapUnitScale" type="QString"/>
<Option value="MM" name="offsetFromLabelUnit" type="QString"/>
</Option>
</callout>
</settings>
</labeling>
<customproperties>
<Option type="Map">
<Option value="0" name="embeddedWidgets/count" type="int"/>
<Option name="variableNames"/>
<Option name="variableValues"/>
</Option>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerOpacity>1</layerOpacity>
<geometryOptions removeDuplicateNodes="0" geometryPrecision="0">
<activeChecks/>
<checkConfiguration/>
</geometryOptions>
<legend type="default-vector" showLabelLegend="0"/>
<referencedLayers/>
<referencingLayers/>
<fieldConfiguration>
<field configurationFlags="NoFlag" name="shortname">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="number">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="agency">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="timestamp">
<editWidget type="DateTime">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="value">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="unit">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="mean">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="absolute">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
<field configurationFlags="NoFlag" name="water">
<editWidget type="TextEdit">
<config>
<Option/>
</config>
</editWidget>
</field>
</fieldConfiguration>
<aliases>
<alias index="0" name="" field="shortname"/>
<alias index="1" name="" field="number"/>
<alias index="2" name="" field="agency"/>
<alias index="3" name="" field="timestamp"/>
<alias index="4" name="" field="value"/>
<alias index="5" name="" field="unit"/>
<alias index="6" name="" field="mean"/>
<alias index="7" name="" field="absolute"/>
<alias index="8" name="" field="water"/>
</aliases>
<defaults>
<default expression="" applyOnUpdate="0" field="shortname"/>
<default expression="" applyOnUpdate="0" field="number"/>
<default expression="" applyOnUpdate="0" field="agency"/>
<default expression="" applyOnUpdate="0" field="timestamp"/>
<default expression="" applyOnUpdate="0" field="value"/>
<default expression="" applyOnUpdate="0" field="unit"/>
<default expression="" applyOnUpdate="0" field="mean"/>
<default expression="" applyOnUpdate="0" field="absolute"/>
<default expression="" applyOnUpdate="0" field="water"/>
</defaults>
<constraints>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="shortname"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="number"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="agency"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="timestamp"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="value"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="unit"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="mean"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="absolute"/>
<constraint exp_strength="0" constraints="0" unique_strength="0" notnull_strength="0" field="water"/>
</constraints>
<constraintExpressions>
<constraint exp="" desc="" field="shortname"/>
<constraint exp="" desc="" field="number"/>
<constraint exp="" desc="" field="agency"/>
<constraint exp="" desc="" field="timestamp"/>
<constraint exp="" desc="" field="value"/>
<constraint exp="" desc="" field="unit"/>
<constraint exp="" desc="" field="mean"/>
<constraint exp="" desc="" field="absolute"/>
<constraint exp="" desc="" field="water"/>
</constraintExpressions>
<expressionfields/>
<attributeactions>
<defaultAction value="{00000000-0000-0000-0000-000000000000}" key="Canvas"/>
</attributeactions>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
<columns>
<column hidden="0" name="shortname" type="field" width="-1"/>
<column hidden="0" name="number" type="field" width="-1"/>
<column hidden="0" name="agency" type="field" width="-1"/>
<column hidden="0" name="timestamp" type="field" width="-1"/>
<column hidden="0" name="value" type="field" width="-1"/>
<column hidden="0" name="unit" type="field" width="-1"/>
<column hidden="0" name="mean" type="field" width="-1"/>
<column hidden="0" name="absolute" type="field" width="-1"/>
<column hidden="0" name="water" type="field" width="-1"/>
<column hidden="1" type="actions" width="-1"/>
</columns>
</attributetableconfig>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
<storedexpressions/>
<editform tolerant="1"></editform>
<editforminit/>
<editforminitcodesource>0</editforminitcodesource>
<editforminitfilepath></editforminitfilepath>
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
"""
QGIS-Formulare können eine Python-Funktion haben,, die aufgerufen wird, wenn sich das Formular öffnet
Diese Funktion kann verwendet werden um dem Formular Extralogik hinzuzufügen.
Der Name der Funktion wird im Feld "Python Init-Function" angegeben
Ein Beispiel folgt:
"""
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 editable="1" name="agency"/>
<field editable="1" name="number"/>
<field editable="1" name="shortname"/>
<field editable="1" name="mean"/>
<field editable="1" name="absolute"/>
<field editable="1" name="timestamp"/>
<field editable="1" name="unit"/>
<field editable="1" name="value"/>
<field editable="1" name="water"/>
</editable>
<labelOnTop>
<field name="agency" labelOnTop="0"/>
<field name="number" labelOnTop="0"/>
<field name="shortname" labelOnTop="0"/>
<field name="mean" labelOnTop="0"/>
<field name="absolute" labelOnTop="0"/>
<field name="timestamp" labelOnTop="0"/>
<field name="unit" labelOnTop="0"/>
<field name="value" labelOnTop="0"/>
<field name="water" labelOnTop="0"/>
</labelOnTop>
<reuseLastValue>
<field reuseLastValue="0" name="agency"/>
<field reuseLastValue="0" name="number"/>
<field reuseLastValue="0" name="shortname"/>
<field reuseLastValue="0" name="mean"/>
<field reuseLastValue="0" name="absolute"/>
<field reuseLastValue="0" name="timestamp"/>
<field reuseLastValue="0" name="unit"/>
<field reuseLastValue="0" name="value"/>
<field reuseLastValue="0" name="water"/>
</reuseLastValue>
<dataDefinedFieldProperties/>
<widgets/>
<previewExpression>"shortname"</previewExpression>
<mapTip enabled="1"> &lt;h1>[% "shortname" %]&lt;/h1> &lt;table> &lt;tr> &lt;th style='text-align: left'>Nummer:&lt;/th> &lt;td>#[% "number" %]&lt;/td> &lt;/tr> &lt;tr> &lt;th style='text-align: left'>Behörde:&lt;/th> &lt;td>[% "agency" %]&lt;/td> &lt;/tr> &lt;tr> &lt;th style='text-align: left'>Gewässer:&lt;/th> &lt;td>[% "water" %]&lt;/td> &lt;/tr> &lt;tr> &lt;th style='text-align: left'>Zeitstempel:&lt;/th> &lt;td>[% "timestamp" %]&lt;/td> &lt;/tr> &lt;tr> &lt;th style='text-align: left'>Aktueller Pegel:&lt;/th> &lt;td>[% "value" %] [% "unit" %]&lt;/td> &lt;/tr> &lt;tr> &lt;th style='text-align: left'>MNW, MHW:&lt;/th> &lt;td>[% "mean" %]&lt;/td> &lt;/tr> &lt;tr> &lt;th style='text-align: left'>NSW, HSW:&lt;/th> &lt;td>[% "absolute" %]&lt;/td> &lt;/tr> &lt;/table></mapTip>
<layerGeometryType>0</layerGeometryType>
</qgis>