Pegelonline/po_modules/po_stations_reader_qgs.py

41 lines
1.4 KiB
Python

from PyQt5.QtCore import QVariant
from qgis._core import QgsCoordinateReferenceSystem
from qgis.core import QgsFields, QgsField
from .po_station_reader import PoStationReader
class PoStationReaderQgs(PoStationReader):
def __init__(self):
super().__init__()
self.fields = None
self.crs = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
def get_features(self):
print("PoStationReaderQgs::get_features: Erzeuge Features...")
self.fields = QgsFields()
self.fields.append(QgsField('uuid', QVariant.String))
self.fields.append(QgsField('number', QVariant.LongLong))
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))
features = []
stations = self.get_stations()
if stations is None or len(stations) == 0:
print("PoStationReaderQgs::get_features: Fehler: Keine Stationen erhalten")
return None
for station in stations:
feature = station.new_feature(self.fields)
if feature is not None:
features.append(feature)
print("PoStationReaderQgs::get_features: %d Features erzeugt" % (len(features),))
return features