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.fields = None self.crs = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId) def getCurrentWFeatures(self): print("getCurrentWFeatures: Erzeuge Features...") 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('value', QVariant.Double)) self.fields.append(QgsField('stateMnwMhw', QVariant.String)) self.fields.append(QgsField('stateNswHsw', QVariant.String)) 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(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('stateMnwMhw', station['attributes']['stateMnwMhw']) feature.setAttribute('stateNswHsw', station['attributes']['stateNswHsw']) return feature