from PyQt5.QtCore import QVariant from qgis._core import QgsCoordinateReferenceSystem, QgsGeometry, QgsPointXY from qgis.core import QgsFields, QgsFeature, QgsField from .postations import PoStations class PoQgsStations(PoStations): def __init__(self): PoStations.__init__(self) self.crs = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId) self.fields = QgsFields() self.fields.append(QgsField('uuid', QVariant.String)) self.fields.append(QgsField('number', QVariant.Int)) 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)) def getStationsFeatures(self): print("getStationsFeatures: Erzeuge Features...") features = [] for station in self.getStations(): feature = self._getFeatureForStation(station) features.append(feature) print("getStationsFeatures: %d Features erzeugt" % (len(features),)) return features def _getFeatureForStation(self, station) -> QgsFeature: feature = QgsFeature() longitude = station['geometry']['longitude'] latitude = station['geometry']['latitude'] feature.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(longitude, latitude))) feature.setFields(self.fields) 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