Labels funktional

This commit is contained in:
Patrick Haßel 2025-09-27 12:54:39 +02:00
parent 1d1aeb68cd
commit 08b39f81d8
4 changed files with 324 additions and 217 deletions

View File

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>297</width> <width>290</width>
<height>556</height> <height>532</height>
</rect> </rect>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
@ -40,6 +40,10 @@
<string>Optionen:</string> <string>Optionen:</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_4"> <layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item> <item>
<widget class="QCheckBox" name="cbWaterlevelsName"> <widget class="QCheckBox" name="cbWaterlevelsName">
<property name="text"> <property name="text">
@ -47,6 +51,20 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QCheckBox" name="cbWaterlevelsNumber">
<property name="text">
<string>Nummer</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbWaterlevelsAgency">
<property name="text">
<string>Organisation</string>
</property>
</widget>
</item>
<item> <item>
<widget class="QCheckBox" name="cbWaterlevelsTimestamp"> <widget class="QCheckBox" name="cbWaterlevelsTimestamp">
<property name="text"> <property name="text">
@ -54,6 +72,10 @@
</property> </property>
</widget> </widget>
</item> </item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item> <item>
<widget class="QCheckBox" name="cbWaterlevelsValue"> <widget class="QCheckBox" name="cbWaterlevelsValue">
<property name="text"> <property name="text">
@ -64,18 +86,22 @@
<item> <item>
<widget class="QCheckBox" name="cbWaterlevelsMean"> <widget class="QCheckBox" name="cbWaterlevelsMean">
<property name="text"> <property name="text">
<string>mittelere niedrigste, höchste Pegel</string> <string>MNW, MHW</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="cbWaterlevelsAbsolute"> <widget class="QCheckBox" name="cbWaterlevelsAbsolute">
<property name="text"> <property name="text">
<string>absolute niedrigste, höchste Pegel</string> <string>NSW, HSW</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item>
</layout>
</item>
</layout>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -119,7 +145,7 @@
<item> <item>
<widget class="QCheckBox" name="cbStationsAgency"> <widget class="QCheckBox" name="cbStationsAgency">
<property name="text"> <property name="text">
<string>Unternehmen</string> <string>Organisation</string>
</property> </property>
</widget> </widget>
</item> </item>

View File

@ -1,12 +1,14 @@
import os.path import os.path
from typing import Callable from typing import Callable
from qgis._core import QgsVectorLayer, QgsProject, QgsLayerTreeLayer from qgis._core import QgsVectorLayer, QgsProject, QgsLayerTreeLayer, QgsPalLayerSettings, QgsVectorLayerSimpleLabeling
from .pegelonline_dockwidget import PegelonlineDockWidget from .pegelonline_dockwidget import PegelonlineDockWidget
from .pomodules.poqgscurrentw import PoQgsCurrentW from .pomodules.poqgscurrentw import PoQgsCurrentW
from .pomodules.poqgsstations import PoQgsStations from .pomodules.poqgsstations import PoQgsStations
INFIX = ", ' - ', "
# noinspection PyMethodMayBeStatic # noinspection PyMethodMayBeStatic
class PoRunner(object): class PoRunner(object):
@ -26,6 +28,72 @@ class PoRunner(object):
self.connect_stations_signals() self.connect_stations_signals()
self.connect_waterlevels_signals() self.connect_waterlevels_signals()
# basemap -----------------------------------------------------------------
def disconnectStations(self):
print("disconnectStations")
self.stations = None
self.ui.cbStationsVisible.setChecked(False)
# basemap signals ---------------------------------------------------------
def _basemapCreate(self, path, name, disconnect: Callable[[], None]) -> None | QgsVectorLayer:
print("_basemapCreate: %s" % (name,))
path = os.path.join(self.local_dir, "basemap", path)
basemap = QgsVectorLayer(path, name, "ogr")
if not basemap.isValid():
print("_basemapCreate: QgsVectorLayer nicht gültig: path=%s, name=%s" % (path, name))
return None
# disconnect setzen
# noinspection PyUnresolvedReferences
basemap.willBeDeleted.connect(disconnect)
# zur Instanz hinzufügen
QgsProject.instance().addMapLayer(basemap, False)
# zum LayerTree hinzufügen
layer_tree = self.iface.layerTreeCanvasBridge().rootGroup()
layer_tree.insertChildNode(-1, QgsLayerTreeLayer(basemap))
return basemap
def connect_basemap_signals(self):
print("connect_basemap_signals")
self.ui.cbBasemapLines.toggled.connect(self.cbBasemapLinesToggled)
self.ui.cbBasemapAreas.toggled.connect(self.cbBasemapAreasToggled)
def cbBasemapLinesToggled(self):
checked = self.ui.cbBasemapLines.isChecked()
print("cbBasemapLinesToggled: %s" % (checked,))
if self.lines is None and checked:
self.lines = self._basemapCreate("waters.gpkg|layername=water_l", "Flüsse", self.disconnectBasemapLines)
if self.lines is not None:
self._layerSetVisible(self.lines, checked)
def cbBasemapAreasToggled(self):
checked = self.ui.cbBasemapAreas.isChecked()
print("cbBasemapAreasToggled: %s" % (checked,))
if self.areas is None and checked:
self.areas = self._basemapCreate("waters.gpkg|layername=water_f", "Flächen", self.disconnectBasemapAreas)
if self.areas is not None:
self._layerSetVisible(self.areas, checked)
def disconnectBasemapLines(self):
print("disconnectBasemapLines")
self.lines = None
self.ui.cbBasemapLines.setChecked(False)
def disconnectBasemapAreas(self):
print("disconnectBasemapAreas")
self.areas = None
self.ui.cbBasemapAreas.setChecked(False)
# stations ---------------------------------------------------------------- # stations ----------------------------------------------------------------
def loadStations(self): def loadStations(self):
@ -33,15 +101,188 @@ class PoRunner(object):
reader = PoQgsStations() reader = PoQgsStations()
features = reader.getStationsFeatures() features = reader.getStationsFeatures()
self.stations = self._layerFromReader(reader.fields, reader.crs, features, "Stationen") self.stations = self._layerFromReader(reader.fields, reader.crs, features, "Stationen")
self._stationsUpdateLabeling()
self._layerShow(self.stations, "styles/label_stations.qml", self.disconnectStations) self._layerShow(self.stations, "styles/label_stations.qml", self.disconnectStations)
# noinspection DuplicatedCode
def _stationsUpdateLabeling(self):
fields = []
if self.ui.cbStationsName.isChecked():
fields.append("shortname")
if self.ui.cbStationsNumber.isChecked():
fields.append("number")
if self.ui.cbStationsAgency.isChecked():
fields.append("agency")
if self.ui.cbStationsKm.isChecked():
fields.append("km")
if self.ui.cbStationsWater.isChecked():
fields.append("water")
self._layerUpdateLabeling(self.stations, fields)
# stations signals --------------------------------------------------------
def connect_stations_signals(self):
print("connect_stations_signals")
# noinspection DuplicatedCode
self.ui.cbStationsVisible.toggled.connect(self.cbStationsVisibleToggled)
self.ui.cbStationsName.toggled.connect(self.cbStationsNameToggled)
self.ui.cbStationsNumber.toggled.connect(self.cbStationsNumberToggled)
self.ui.cbStationsAgency.toggled.connect(self.cbStationsAgencyToggled)
self.ui.cbStationsKm.toggled.connect(self.cbStationsKmToggled)
self.ui.cbStationsWater.toggled.connect(self.cbStationsWaterToggled)
def cbStationsVisibleToggled(self):
visible = self.ui.cbStationsVisible.isChecked()
print("cbStationsVisibleToggled: %s" % (visible,))
if self.stations is None and visible:
self.loadStations()
if self.stations is not None:
self.stations.setLabelsEnabled(visible)
self._layerSetVisible(self.stations, visible)
self._layerRefresh(self.stations)
def cbStationsNameToggled(self):
checked = self.ui.cbStationsName.isChecked()
print("cbStationsNameToggled: %s" % (checked,))
self._stationsUpdateLabeling()
def cbStationsNumberToggled(self):
checked = self.ui.cbStationsNumber.isChecked()
print("cbStationsNumberToggled: %s" % (checked,))
self._stationsUpdateLabeling()
def cbStationsAgencyToggled(self):
checked = self.ui.cbStationsAgency.isChecked()
print("cbStationsAgencyToggled: %s" % (checked,))
self._stationsUpdateLabeling()
def cbStationsKmToggled(self):
checked = self.ui.cbStationsKm.isChecked()
print("cbStationsKmToggled: %s" % (checked,))
self._stationsUpdateLabeling()
def cbStationsWaterToggled(self):
checked = self.ui.cbStationsWater.isChecked()
print("cbStationsWaterToggled: %s" % (checked,))
self._stationsUpdateLabeling()
# waterlevels -------------------------------------------------------------
def loadWaterlevels(self): def loadWaterlevels(self):
print("loadWaterlevels") print("loadWaterlevels")
reader = PoQgsCurrentW() reader = PoQgsCurrentW()
features = reader.getCurrentWFeatures() features = reader.getCurrentWFeatures()
self.waterlevels = self._layerFromReader(reader.fields, reader.crs, features, "Wasserstandinformationen") self.waterlevels = self._layerFromReader(reader.fields, reader.crs, features, "Wasserstandinformationen")
self._waterlevelsUpdateLabeling()
self._layerShow(self.waterlevels, "styles/label_currentw.qml", self.disconnectWaterlevels) self._layerShow(self.waterlevels, "styles/label_currentw.qml", self.disconnectWaterlevels)
# noinspection DuplicatedCode
def _waterlevelsUpdateLabeling(self):
fields = []
if self.ui.cbWaterlevelsName.isChecked():
fields.append("shortname")
if self.ui.cbWaterlevelsNumber.isChecked():
fields.append("number")
if self.ui.cbWaterlevelsAgency.isChecked():
fields.append("agency")
if self.ui.cbWaterlevelsTimestamp.isChecked():
fields.append("timestamp")
if self.ui.cbWaterlevelsValue.isChecked():
fields.append("value")
if self.ui.cbWaterlevelsMean.isChecked():
fields.append("stateMnwMhw")
if self.ui.cbWaterlevelsAbsolute.isChecked():
fields.append("stateNswHsw")
self._layerUpdateLabeling(self.waterlevels, fields)
# waterlevels signals -----------------------------------------------------
def _layerSetVisible(self, basemap: QgsVectorLayer, visible):
print("_layerSetVisible: %s => %s" % (basemap.name, visible))
layer_tree = QgsProject.instance().layerTreeRoot().findLayer(basemap.id())
layer_tree.setItemVisibilityChecked(visible)
self._layerRefresh(basemap)
def connect_waterlevels_signals(self):
print("connect_waterlevels_signals")
# noinspection DuplicatedCode
self.ui.cbWaterlevelsVisible.toggled.connect(self.cbWaterlevelsVisibleToggled)
self.ui.cbWaterlevelsName.toggled.connect(self.cbWaterlevelsNameToggled)
self.ui.cbWaterlevelsNumber.toggled.connect(self.cbWaterlevelsNumberToggled)
self.ui.cbWaterlevelsAgency.toggled.connect(self.cbWaterlevelsAgencyToggled)
self.ui.cbWaterlevelsTimestamp.toggled.connect(self.cbWaterlevelsTimestampToggled)
self.ui.cbWaterlevelsValue.toggled.connect(self.cbWaterlevelsValueToggled)
self.ui.cbWaterlevelsMean.toggled.connect(self.cbWaterlevelsMeanToggled)
self.ui.cbWaterlevelsAbsolute.toggled.connect(self.cbWaterlevelsAbsoluteToggled)
def cbWaterlevelsVisibleToggled(self):
visible = self.ui.cbWaterlevelsVisible.isChecked()
print("cbWaterlevelsVisibleToggled: %s" % (visible,))
if self.waterlevels is None:
self.loadWaterlevels()
if self.waterlevels is not None:
self.waterlevels.setLabelsEnabled(visible)
self._layerSetVisible(self.waterlevels, visible)
self._layerRefresh(self.waterlevels)
def cbWaterlevelsNameToggled(self):
checked = self.ui.cbWaterlevelsName.isChecked()
print("cbWaterlevelsNameName: %s" % (checked,))
self._waterlevelsUpdateLabeling()
def cbWaterlevelsNumberToggled(self):
checked = self.ui.cbWaterlevelsNumber.isChecked()
print("cbWaterlevelsNameNumber: %s" % (checked,))
self._waterlevelsUpdateLabeling()
def cbWaterlevelsAgencyToggled(self):
checked = self.ui.cbWaterlevelsAgency.isChecked()
print("cbWaterlevelsNameAgency: %s" % (checked,))
self._waterlevelsUpdateLabeling()
def cbWaterlevelsTimestampToggled(self):
checked = self.ui.cbWaterlevelsTimestamp.isChecked()
print("cbWaterlevelsTimestampToggled: %s" % (checked,))
self._waterlevelsUpdateLabeling()
def cbWaterlevelsValueToggled(self):
checked = self.ui.cbWaterlevelsValue.isChecked()
print("cbWaterlevelsValueToggled: %s" % (checked,))
self._waterlevelsUpdateLabeling()
def cbWaterlevelsMeanToggled(self):
checked = self.ui.cbWaterlevelsMean.isChecked()
print("cbWaterlevelsMeanToggled: %s" % (checked,))
self._waterlevelsUpdateLabeling()
def cbWaterlevelsAbsoluteToggled(self):
checked = self.ui.cbWaterlevelsAbsolute.isChecked()
print("cbWaterlevelsAbsoluteToggled: %s" % (checked,))
self._waterlevelsUpdateLabeling()
# def rbValueChanged(self, button):
# print("rbValueChanged")
# if self.layer_waterlevels is None:
# self.loadWaterlevels()
#
# if button.objectName() == "rbShowTrend":
# self.layer_waterlevels.loadNamedStyle(os.path.join(self.local_dir, "styles/label_currentw_trend.qml"))
# elif button.objectName() == "rbShowAbsValues":
# self.layer_waterlevels.loadNamedStyle(os.path.join(self.local_dir, "styles/label_currentw_absvalue.qml"))
#
# self.cbWaterlevelsVisibleToggled()
def disconnectWaterlevels(self):
print("disconnectWaterlevels")
self.waterlevels = None
self.ui.cbWaterlevelsVisible.setChecked(False)
# layers ------------------------------------------------------------------
def _layerFromReader(self, fields, crs, features, title) -> None | QgsVectorLayer: def _layerFromReader(self, fields, crs, features, title) -> None | QgsVectorLayer:
print("_layerFromReader") print("_layerFromReader")
if features is None: if features is None:
@ -88,120 +329,23 @@ class PoRunner(object):
self._layerSetVisible(layer, True) self._layerSetVisible(layer, True)
self._layerRefresh(layer) self._layerRefresh(layer)
# stations signals -------------------------------------------------------- def _layerUpdateLabeling(self, layer, fields):
labeling = QgsVectorLayerSimpleLabeling(QgsPalLayerSettings())
def connect_stations_signals(self): # Anführungszeichen um Feldnamen anbringen
print("connect_stations_signals") fields_quoted = ['"%s"' % (field,) for field in fields]
self.ui.cbStationsVisible.toggled.connect(self.cbStationsVisibleToggled)
self.ui.cbStationsName.toggled.connect(self.cbStationsNameToggled)
self.ui.cbStationsNumber.toggled.connect(self.cbStationsNumberToggled)
self.ui.cbStationsAgency.toggled.connect(self.cbStationsAgencyToggled)
self.ui.cbStationsKm.toggled.connect(self.cbStationsKmToggled)
self.ui.cbStationsWater.toggled.connect(self.cbStationsWaterToggled)
def cbStationsVisibleToggled(self): # Feldnamen zu einem Minus-getrennten String zusammenbauen
visible = self.ui.cbStationsVisible.isChecked() expression = ", ' - ', ".join(fields_quoted)
print("cbStationsVisibleToggled: %s" % (visible,))
if self.stations is None and visible: settings = labeling.settings()
self.loadStations() settings.fieldName = "concat(" + expression + ")"
settings.isExpression = True
if self.stations is not None: layer.setLabeling(QgsVectorLayerSimpleLabeling(settings))
self.stations.setLabelsEnabled(visible) layer.setLabelsEnabled(True)
self._layerSetVisible(self.stations, visible)
self._layerRefresh(self.stations)
def cbStationsNameToggled(self): self._layerRefresh(layer)
checked = self.ui.cbStationsName.isChecked()
print("cbStationsNameToggled: %s" % (checked,))
# TODO
def cbStationsNumberToggled(self):
checked = self.ui.cbStationsNumber.isChecked()
print("cbStationsNumberToggled: %s" % (checked,))
# TODO
def cbStationsAgencyToggled(self):
checked = self.ui.cbStationsAgency.isChecked()
print("cbStationsAgencyToggled: %s" % (checked,))
# TODO
def cbStationsKmToggled(self):
checked = self.ui.cbStationsKm.isChecked()
print("cbStationsKmToggled: %s" % (checked,))
# TODO
def cbStationsWaterToggled(self):
checked = self.ui.cbStationsWater.isChecked()
print("cbStationsWaterToggled: %s" % (checked,))
# TODO
def disconnectStations(self):
print("disconnectStations")
self.stations = None
self.ui.cbStationsVisible.setChecked(False)
# basemap -----------------------------------------------------------------
def _basemapCreate(self, path, name, disconnect: Callable[[], None]) -> None | QgsVectorLayer:
print("_basemapCreate: %s" % (name,))
path = os.path.join(self.local_dir, "basemap", path)
basemap = QgsVectorLayer(path, name, "ogr")
if not basemap.isValid():
print("_basemapCreate: QgsVectorLayer nicht gültig: path=%s, name=%s" % (path, name))
return None
# disconnect setzen
basemap.willBeDeleted.connect(disconnect)
# zur Instanz hinzufügen
QgsProject.instance().addMapLayer(basemap, False)
# zum LayerTree hinzufügen
layer_tree = self.iface.layerTreeCanvasBridge().rootGroup()
layer_tree.insertChildNode(-1, QgsLayerTreeLayer(basemap))
return basemap
# basemap signals ---------------------------------------------------------
def connect_basemap_signals(self):
print("connect_basemap_signals")
self.ui.cbBasemapLines.toggled.connect(self.cbBasemapLinesToggled)
self.ui.cbBasemapAreas.toggled.connect(self.cbBasemapAreasToggled)
def cbBasemapLinesToggled(self):
checked = self.ui.cbBasemapLines.isChecked()
print("cbBasemapLinesToggled: %s" % (checked,))
if self.lines is None and checked:
self.lines = self._basemapCreate("waters.gpkg|layername=water_l", "Flüsse", self.disconnectBasemapLines)
if self.lines is not None:
self._layerSetVisible(self.lines, checked)
def cbBasemapAreasToggled(self):
checked = self.ui.cbBasemapAreas.isChecked()
print("cbBasemapAreasToggled: %s" % (checked,))
if self.areas is None and checked:
self.areas = self._basemapCreate("waters.gpkg|layername=water_f", "Flächen", self.disconnectBasemapAreas)
if self.areas is not None:
self._layerSetVisible(self.areas, checked)
def disconnectBasemapLines(self):
print("disconnectBasemapLines")
self.lines = None
self.ui.cbBasemapLines.setChecked(False)
def disconnectBasemapAreas(self):
print("disconnectBasemapAreas")
self.areas = None
self.ui.cbBasemapAreas.setChecked(False)
# layers ------------------------------------------------------------------
def _layerRefresh(self, layer): def _layerRefresh(self, layer):
print("_layerRefresh") print("_layerRefresh")
@ -209,74 +353,3 @@ class PoRunner(object):
layer.triggerRepaint() layer.triggerRepaint()
else: else:
self.iface.mapCanvas().refresh() self.iface.mapCanvas().refresh()
def _layerSetVisible(self, basemap: QgsVectorLayer, visible):
print("_layerSetVisible: %s => %s" % (basemap.name, visible))
layer_tree = QgsProject.instance().layerTreeRoot().findLayer(basemap.id())
layer_tree.setItemVisibilityChecked(visible)
self._layerRefresh(basemap)
# waterlevels signals -----------------------------------------------------
def connect_waterlevels_signals(self):
print("connect_waterlevels_signals")
self.ui.cbWaterlevelsVisible.toggled.connect(self.cbWaterlevelsVisibleToggled)
self.ui.cbWaterlevelsName.toggled.connect(self.cbWaterlevelsNameToggled)
self.ui.cbWaterlevelsTimestamp.toggled.connect(self.cbWaterlevelsTimestampToggled)
self.ui.cbWaterlevelsValue.toggled.connect(self.cbWaterlevelsValueToggled)
self.ui.cbWaterlevelsMean.toggled.connect(self.cbWaterlevelsMeanToggled)
self.ui.cbWaterlevelsAbsolute.toggled.connect(self.cbWaterlevelsAbsoluteToggled)
def cbWaterlevelsVisibleToggled(self):
visible = self.ui.cbWaterlevelsVisible.isChecked()
print("cbWaterlevelsVisibleToggled: %s" % (visible,))
if self.waterlevels is None:
self.loadWaterlevels()
if self.waterlevels is not None:
self.waterlevels.setLabelsEnabled(visible)
self._layerSetVisible(self.waterlevels, visible)
self._layerRefresh(self.waterlevels)
def cbWaterlevelsNameToggled(self):
checked = self.ui.cbWaterlevelsName.isChecked()
print("cbWaterlevelsNameToggled: %s" % (checked,))
# TODO
def cbWaterlevelsTimestampToggled(self):
checked = self.ui.cbWaterlevelsTimestamp.isChecked()
print("cbWaterlevelsTimestampToggled: %s" % (checked,))
# TODO
def cbWaterlevelsValueToggled(self):
checked = self.ui.cbWaterlevelsValue.isChecked()
print("cbWaterlevelsValueToggled: %s" % (checked,))
# TODO
def cbWaterlevelsMeanToggled(self):
checked = self.ui.cbWaterlevelsMean.isChecked()
print("cbWaterlevelsMeanToggled: %s" % (checked,))
# TODO
def cbWaterlevelsAbsoluteToggled(self):
checked = self.ui.cbWaterlevelsAbsolute.isChecked()
print("cbWaterlevelsAbsoluteToggled: %s" % (checked,))
# TODO
def disconnectWaterlevels(self):
print("disconnectWaterlevels")
self.waterlevels = None
self.ui.cbWaterlevelsVisible.setChecked(False)
# def rbValueChanged(self, button):
# print("rbValueChanged")
# if self.layer_waterlevels is None:
# self.loadWaterlevels()
#
# if button.objectName() == "rbShowTrend":
# self.layer_waterlevels.loadNamedStyle(os.path.join(self.local_dir, "styles/label_currentw_trend.qml"))
# elif button.objectName() == "rbShowAbsValues":
# self.layer_waterlevels.loadNamedStyle(os.path.join(self.local_dir, "styles/label_currentw_absvalue.qml"))
#
# self.cbWaterlevelsVisibleToggled()

View File

@ -33,6 +33,8 @@ class PoCurrentW(object):
'attributes': { 'attributes': {
'uuid': station_json['uuid'], 'uuid': station_json['uuid'],
'shortname': station_json['shortname'], 'shortname': station_json['shortname'],
'number': station_json['number'],
'agency': station_json['agency'],
'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'],

View File

@ -16,6 +16,9 @@ class PoQgsCurrentW(PoCurrentW):
print("getCurrentWFeatures: Erzeuge Features...") print("getCurrentWFeatures: Erzeuge Features...")
self.fields = QgsFields() self.fields = QgsFields()
self.fields.append(QgsField('shortname', QVariant.String))
self.fields.append(QgsField('number', QVariant.Int))
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('stateMnwMhw', QVariant.String)) self.fields.append(QgsField('stateMnwMhw', QVariant.String))
@ -36,6 +39,9 @@ class PoQgsCurrentW(PoCurrentW):
latitude = station['geometry']['latitude'] latitude = station['geometry']['latitude']
feature.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(longitude, 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('timestamp', station['attributes']['timestamp'])
feature.setAttribute('value', station['attributes']['value']) feature.setAttribute('value', station['attributes']['value'])
feature.setAttribute('stateMnwMhw', station['attributes']['stateMnwMhw']) feature.setAttribute('stateMnwMhw', station['attributes']['stateMnwMhw'])