Pegelonline/pomodules/poqgscurrentw.py

45 lines
1.6 KiB
Python

from PyQt5.QtCore import QVariant
from qgis._core import QgsCoordinateReferenceSystem, QgsGeometry, QgsPointXY
from qgis.core import QgsFields, QgsFeature, QgsField
from .pocurrentw import PoCurrentW
class PoQgsCurrentW(PoCurrentW):
def __init__(self):
super().__init__()
self.crs = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
self.fields = QgsFields()
self.fields.append(QgsField('timestamp', QVariant.DateTime))
self.fields.append(QgsField('value', QVariant.Double))
self.fields.append(QgsField('stateMnwMhw', QVariant.String))
self.fields.append(QgsField('stateNswHsw', QVariant.String))
def getCurrentWFeatures(self):
print("getCurrentWFeatures: Erzeuge Features...")
features = []
for station in self.getCurrentW():
feature = self._getFeatureForStation(station)
features.append(feature)
print("getCurrentWFeatures: %d Features erzeugt" % (len(features),))
return features
def _getFeatureForStation(self, station):
feature = QgsFeature()
longitude = station['geometry']['longitude']
latitude = station['geometry']['latitude']
feature.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(longitude, latitude)))
feature.setFields(self.fields)
feature.setAttribute('timestamp', station['attributes']['timestamp'])
feature.setAttribute('value', station['attributes']['value'])
feature.setAttribute('stateMnwMhw', station['attributes']['stateMnwMhw'])
feature.setAttribute('stateNswHsw', station['attributes']['stateNswHsw'])
return feature