51 lines
2.0 KiB
Python
51 lines
2.0 KiB
Python
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
|