Re: [FOSSGIS-Talk] QGIS - Flächenberechnung per Trigger für GeoPackage auch ellipsoidisch möglich?

Nane russlanderfahrung at gmx.de
Mi Okt 21 09:13:20 CEST 2026


Hallo Bernd,

vielen Dank für Deine Hilfe und Erklärungen! Das was ich schon vermutet 
habe, habe ich nun auch verstanden! Bisher haben wir das immer mit dem 
Vorgabewert so gemacht wie du vorgeschlagen hast. Es war etwas 
ungeschickt von mir nach dem Trigger zu fragen, den man ja wirklich 
einfach umgehen kann. Aber es gibt auch noch ein View in dem GeoPackage, 
in dem aus einem Layer Flächen nach verschiedenen Gruppierungen und 
Filtern als Ergebnistabelle berechnet werden. In QGIS ist das sehr 
aufwendig (mit festen Feldern) oder macht das Projekt sehr langsam (mit 
virtuellen Feldern). Mit einem View geht das nun ganz wunderbar und ich 
bin begeistert wie performant das ist. Aber auch hier nutze ich die 
Funktion ST_Area(). Auf den Trigger können wir also gut verzichten, auf 
den View aber nicht. Es bleiben meinem Verständnis nach zwei 
Möglichkeiten (es handelt sich um ca. 10.000 Flächen 
(Kleingartenanlagen, aufgeteilt nach ihrer Nutzung), verteilt innerhalb 
einer Großstadt, im Koordinatensystem ETRS89 (EPSG 25832):

1. Wir steigen auf SpatiaLite um (da ist mir noch nicht ganz klar, wo 
ich überall den Code ändern müsste und will das mal testen, ob ich das 
hinbekomme)
2. Wir bleiben bei GeoPackage und nutzen planimetrische Berechnungen

Wäre einer dieser Varianten aus QGIS-fachlicher Sicht die zu 
bevorzugende? Weil z.B. ellipsoide Berechnungen die besser geeigneten 
sind als die planimetrischen. Oder weil GeoPackage nun mal der bessere 
Standard für QGIS ist? Ich kann nicht einschätzen, ob durch die 
Umstellung auf SpatiaLite Änderungen/ Schwierigkeiten kommen können, die 
ich im Moment noch nicht kenne. Übersehe ich da noch etwas?

Herzliche Grüße von

Nane


Am 20.10.2026 um 10:44 schrieb Bernd Marcus via FOSSGIS-Talk-Liste:
> Hallo Nane,
>
> ein Blick in die Referenzliste der libspatialite Bibliothek (https://www.gaia-gis.it/gaia-sins/spatialite-sql-5.1.0.html#p8) offenbart, dass die Funktion
> st_area() dank der RTTOPO Erweiterung auch die ellipsoide Fläche von Polygonen
> berechnen kann. Allerdings müssen bei Verwendung von
> ST_Area( s Surface , use_ellipsoid Boolean )
> die Koordinaten in Längen- und Breitengraden vorliegen. Ist dies nicht der
> Fall, wird NULL als Resultat zurückgegeben.
>
> Liegen deine Polygone in einem metrischen Koordinatensystem vor, steht also
> erst einmal eine Reprojektion der Geometrien an. Dies lässt sich natürlich
> auch innerhablb eines Trigges realisieren, scheitert jedoch innerhalb eines
> Geopackages, da die für die Transformation notwendige Meta-Tabelle
> "spatial_ref_sys" nicht zur Verfügung steht.
>
> Mit libspatialite lassen sich zwar Geopackages erstellen, abfragen und
> manipulieren, die Bibliohek hatte allerdings nie den Anspruch, alle Funktionen
> dieser räumlichen Erweiterung für SQLite auf Geopackages zu übertragen. Willst
> du also den vollen Funktionsumfang von libspatialite ausschöpfen, so ist ein
> Umstieg von Geopackage auf SpatiaLite unabdingbar.
>
> Für deinen angefragten Anwendungsfall empfehle ich jedoch einen anderen
> Ansatz. Anstatt mit ON INSERT, ON UPDATE Triggern rumzuhantieren, um die
> Fläche eines Polygons zu berechnen, kannst du auch QGIS die Arbeit machen
> lassen. Trage hierzu einfach $area als Vorgabewert für dein Flächenfeld im
> Attribut Formular ein und aktiviere die Option zur Übernahme des Vorgabewertes
> bei Aktualisierung. Dieses Vorgehen ist wesentlich einfacher und
> pflegeleichter.
>
> Schöne Grüße
> Bernd
>
>


Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste