attributes: unit, 'km', water

This commit is contained in:
Patrick Haßel 2025-09-27 16:58:24 +02:00
parent 100149eb08
commit 844cc90bc2
6 changed files with 57 additions and 42 deletions

View File

@ -1,2 +1,3 @@
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()
Bild wird beim "Neu laden" doppelt heruntergeladen

View File

@ -6,7 +6,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>288</width> <width>301</width>
<height>660</height> <height>660</height>
</rect> </rect>
</property> </property>
@ -43,16 +43,16 @@
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_7"> <layout class="QVBoxLayout" name="verticalLayout_7">
<item> <item>
<widget class="QCheckBox" name="cbWaterlevelsName"> <widget class="QCheckBox" name="cbWaterlevelsNumber">
<property name="text"> <property name="text">
<string>Name</string> <string>Nummer</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="cbWaterlevelsNumber"> <widget class="QCheckBox" name="cbWaterlevelsName">
<property name="text"> <property name="text">
<string>Nummer</string> <string>Name</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -64,9 +64,9 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="cbWaterlevelsTimestamp"> <widget class="QCheckBox" name="cbWaterlevelsWater">
<property name="text"> <property name="text">
<string>Zeitstempel</string> <string>Gewässername</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -74,6 +74,13 @@
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QCheckBox" name="cbWaterlevelsTimestamp">
<property name="text">
<string>Zeitstempel</string>
</property>
</widget>
</item>
<item> <item>
<widget class="QCheckBox" name="cbWaterlevelsValue"> <widget class="QCheckBox" name="cbWaterlevelsValue">
<property name="text"> <property name="text">
@ -147,13 +154,6 @@
<layout class="QHBoxLayout" name="horizontalLayout_3"> <layout class="QHBoxLayout" name="horizontalLayout_3">
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_5"> <layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QCheckBox" name="cbStationsName">
<property name="text">
<string>Stationsname</string>
</property>
</widget>
</item>
<item> <item>
<widget class="QCheckBox" name="cbStationsNumber"> <widget class="QCheckBox" name="cbStationsNumber">
<property name="text"> <property name="text">
@ -162,9 +162,16 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="cbStationsWater"> <widget class="QCheckBox" name="cbStationsName">
<property name="text"> <property name="text">
<string>Gewässername</string> <string>Name</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbStationsAgency">
<property name="text">
<string>Behörde</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -173,9 +180,9 @@
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_6"> <layout class="QVBoxLayout" name="verticalLayout_6">
<item> <item>
<widget class="QCheckBox" name="cbStationsAgency"> <widget class="QCheckBox" name="cbStationsWater">
<property name="text"> <property name="text">
<string>Behörde</string> <string>Gewässername</string>
</property> </property>
</widget> </widget>
</item> </item>

View File

@ -9,8 +9,6 @@ from .pomodules.po_stations import PoStations
from .pomodules.po_stations_qgs import PoStationsQgs from .pomodules.po_stations_qgs import PoStationsQgs
from .pomodules.po_waterlevels_qgs import PoWaterlevelsQgs from .pomodules.po_waterlevels_qgs import PoWaterlevelsQgs
INFIX = ", ' - ', "
# noinspection PyMethodMayBeStatic # noinspection PyMethodMayBeStatic
class PoRunner(object): class PoRunner(object):
@ -160,16 +158,16 @@ class PoRunner(object):
return return
fields = [] fields = []
if self.ui.cbStationsName.isChecked():
fields.append("shortname")
if self.ui.cbStationsNumber.isChecked(): if self.ui.cbStationsNumber.isChecked():
fields.append("number") fields.append('\'#\', "number"')
if self.ui.cbStationsName.isChecked():
fields.append('"shortname"')
if self.ui.cbStationsAgency.isChecked(): if self.ui.cbStationsAgency.isChecked():
fields.append("agency") fields.append('"agency"')
if self.ui.cbStationsKm.isChecked():
fields.append("km")
if self.ui.cbStationsWater.isChecked(): if self.ui.cbStationsWater.isChecked():
fields.append("water") fields.append('"water"')
if self.ui.cbStationsKm.isChecked():
fields.append('"km", \' km\'') # 2 Teile anhängen: km, " km"
self._layer_update_labels(self.stations, fields) self._layer_update_labels(self.stations, fields)
@ -186,6 +184,7 @@ class PoRunner(object):
self.ui.cbWaterlevelsValue.toggled.connect(self._cbWaterlevelsValue_toggled) self.ui.cbWaterlevelsValue.toggled.connect(self._cbWaterlevelsValue_toggled)
self.ui.cbWaterlevelsMean.toggled.connect(self._cbWaterlevelsMean_toggled) self.ui.cbWaterlevelsMean.toggled.connect(self._cbWaterlevelsMean_toggled)
self.ui.cbWaterlevelsAbsolute.toggled.connect(self._cbWaterlevelsAbsolute_toggled) self.ui.cbWaterlevelsAbsolute.toggled.connect(self._cbWaterlevelsAbsolute_toggled)
self.ui.cbWaterlevelsWater.toggled.connect(self._cbWaterlevelsWater_toggled)
def _cbWaterlevelsVisible_toggled(self): def _cbWaterlevelsVisible_toggled(self):
visible = self.ui.cbWaterlevelsVisible.isChecked() visible = self.ui.cbWaterlevelsVisible.isChecked()
@ -236,6 +235,11 @@ class PoRunner(object):
print("_cbWaterlevelsAbsolute_toggled: %s" % (checked,)) print("_cbWaterlevelsAbsolute_toggled: %s" % (checked,))
self._waterlevels_update_labels() self._waterlevels_update_labels()
def _cbWaterlevelsWater_toggled(self):
checked = self.ui.cbWaterlevelsWater.isChecked()
print("_cbWaterlevelsWater_toggled: %s" % (checked,))
self._waterlevels_update_labels()
def waterlevels_disconnect(self): def waterlevels_disconnect(self):
print("waterlevels_disconnect") print("waterlevels_disconnect")
self.waterlevels = None self.waterlevels = None
@ -248,20 +252,22 @@ class PoRunner(object):
return return
fields = [] fields = []
if self.ui.cbWaterlevelsName.isChecked():
fields.append("shortname")
if self.ui.cbWaterlevelsNumber.isChecked(): if self.ui.cbWaterlevelsNumber.isChecked():
fields.append("number") fields.append('\'#\', "number"')
if self.ui.cbWaterlevelsName.isChecked():
fields.append('"shortname"')
if self.ui.cbWaterlevelsAgency.isChecked(): if self.ui.cbWaterlevelsAgency.isChecked():
fields.append("agency") fields.append('"agency"')
if self.ui.cbWaterlevelsWater.isChecked():
fields.append('"water"')
if self.ui.cbWaterlevelsTimestamp.isChecked(): if self.ui.cbWaterlevelsTimestamp.isChecked():
fields.append("timestamp") fields.append('"timestamp"')
if self.ui.cbWaterlevelsValue.isChecked(): if self.ui.cbWaterlevelsValue.isChecked():
fields.append("value") fields.append('"value", \' \', "unit"') # 3 Teile anhängen: value, leerzeichen, unit
if self.ui.cbWaterlevelsMean.isChecked(): if self.ui.cbWaterlevelsMean.isChecked():
fields.append("stateMnwMhw") fields.append('\'MnwMhw=\', "stateMnwMhw"')
if self.ui.cbWaterlevelsAbsolute.isChecked(): if self.ui.cbWaterlevelsAbsolute.isChecked():
fields.append("stateNswHsw") fields.append('\'NswHsw=\', "stateNswHsw"')
self._layer_update_labels(self.waterlevels, fields) self._layer_update_labels(self.waterlevels, fields)
# layers ------------------------------------------------------------------ # layers ------------------------------------------------------------------
@ -321,11 +327,8 @@ class PoRunner(object):
print("_layer_update_labels") print("_layer_update_labels")
labeling = QgsVectorLayerSimpleLabeling(QgsPalLayerSettings()) labeling = QgsVectorLayerSimpleLabeling(QgsPalLayerSettings())
# Anführungszeichen um Feldnamen anbringen
fields_quoted = ['"%s"' % (field,) for field in fields]
# Feldnamen zu einem Minus-getrennten String zusammenbauen # Feldnamen zu einem Minus-getrennten String zusammenbauen
expression = ", ' - ', ".join(fields_quoted) expression = ", ' / ', ".join(fields)
settings = labeling.settings() settings = labeling.settings()
settings.fieldName = "concat(" + expression + ")" settings.fieldName = "concat(" + expression + ")"

View File

@ -15,8 +15,6 @@ class PoStations(UrlReader):
print("getStations: Keine Stationen erhalten") print("getStations: Keine Stationen erhalten")
return None return None
print("getStations: %d Stationen erhalten" % (len(stations_json),))
stations = [] stations = []
for station_json in stations_json: for station_json in stations_json:
stations.append( stations.append(

View File

@ -28,10 +28,12 @@ class PoWaterlevels(UrlReader):
'shortname': station_json['shortname'], 'shortname': station_json['shortname'],
'number': station_json['number'], 'number': station_json['number'],
'agency': station_json['agency'], 'agency': station_json['agency'],
'unit': station_json['timeseries'][0]['unit'],
'timestamp': station_json['timeseries'][0]['currentMeasurement']['timestamp'], 'timestamp': station_json['timeseries'][0]['currentMeasurement']['timestamp'],
'value': station_json['timeseries'][0]['currentMeasurement']['value'], 'value': station_json['timeseries'][0]['currentMeasurement']['value'],
'stateMnwMhw': station_json['timeseries'][0]['currentMeasurement']['stateMnwMhw'], 'stateMnwMhw': station_json['timeseries'][0]['currentMeasurement']['stateMnwMhw'],
'stateNswHsw': station_json['timeseries'][0]['currentMeasurement']['stateNswHsw'], 'stateNswHsw': station_json['timeseries'][0]['currentMeasurement']['stateNswHsw'],
'water': station_json['water']['longname'],
}, },
} }
) )

View File

@ -21,8 +21,10 @@ class PoWaterlevelsQgs(PoWaterlevels):
self.fields.append(QgsField('agency', QVariant.String)) self.fields.append(QgsField('agency', QVariant.String))
self.fields.append(QgsField('timestamp', QVariant.DateTime)) self.fields.append(QgsField('timestamp', QVariant.DateTime))
self.fields.append(QgsField('value', QVariant.Double)) 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('stateMnwMhw', QVariant.String))
self.fields.append(QgsField('stateNswHsw', QVariant.String)) self.fields.append(QgsField('stateNswHsw', QVariant.String))
self.fields.append(QgsField('water', QVariant.String))
features = [] features = []
waterlevels = self.getWaterlevels() waterlevels = self.getWaterlevels()
@ -55,7 +57,9 @@ class PoWaterlevelsQgs(PoWaterlevels):
feature.setAttribute('agency', station['attributes']['agency']) feature.setAttribute('agency', station['attributes']['agency'])
feature.setAttribute('timestamp', station['attributes']['timestamp']) feature.setAttribute('timestamp', station['attributes']['timestamp'])
feature.setAttribute('value', station['attributes']['value']) feature.setAttribute('value', station['attributes']['value'])
feature.setAttribute('unit', station['attributes']['unit'])
feature.setAttribute('stateMnwMhw', station['attributes']['stateMnwMhw']) feature.setAttribute('stateMnwMhw', station['attributes']['stateMnwMhw'])
feature.setAttribute('stateNswHsw', station['attributes']['stateNswHsw']) feature.setAttribute('stateNswHsw', station['attributes']['stateNswHsw'])
feature.setAttribute('water', station['attributes']['water'])
return feature return feature