[FOSSGIS-Talk] QGIS - Flächenberechnung per Trigger für GeoPackage auch ellipsoidisch möglich?
Bernd Marcus
bmarcus at giswana.de
Do Okt 22 13:16:57 CEST 2026
@Klaus:
>Also bei mir werden die Flächen dann korrekt berechnet. Mit Trigger in
>GPKG. Also verwende `ST_Area(geom, 1)` , dann wird der Ellipsoid des
>EPSG 25832 verwendet. Geht ab Gdal 3.9
Wie bzw. mit welchem Werkzeug erstellst du denn einen Trigger,
damit `ST_Area(geom, 1)` aus einem metrischen Koordinatensystem einen
Flächenwert berechnet? Ich habe mal ein bisschen rumgespielt, doch abseits von
WGS84 wird bei mir stets NULL zurückgegeben, wie in der Referenz von
libspatialite beschrieben.
Meine Spielerei sah u.a. folgendermaßen aus, um die im Raum stehenden
Flächenberechnungsverfahren und deren Ergebnisse miteinander zu vergleichen:
den Centroiden, den nördlichsten, östlichesten, südlichsten und westlichsten
Punkt eines Deutschland-Layers (EPSG 25832) extrahiert, hierum einen Puffer von
50m und dann Bounding Boxes erzeugt. Anschließend in QGIS mit `$area` und
`area(geometry)` die Flächen über den Ellipsoiden bzw. planar berechnet. Die
Polygone nach WGS84 reprojeziert und eine weitere Flächenberechnungen mit
`st_area(geom, 1)` sowie `st_area(geom, 1)` durchgeführt.
Das Ergebnis sah dann folgendermaßen aus::
planar:
pos | area(geometry) | st_area(geom,0)
---------+--------------------+--------------------
Zentrum | 10000.000000003725 | 9968.806611039563
Nord | 9999.9999999813736 | 9962.3534923379266
West | 10000.000000005588 | 9959.8299263652207
Ost | 9999.9999999850988 | 9928.1411479365215
Süd | 10000.000000003725 | 9978.504314563248
Ellipsoid:
pos | $area | st_area(geom,1)
---------+--------------------+--------------------
Zentrum | 10005.223125495017 | 10005.225087410916
Nord | 10007.662853439339 | 10007.661924274124
West | 9996.0458401888609 | 9996.0418916556464
Ost | 9964.7120493426919 | 9964.7192924887077
Süd | 10006.061488492414 | 10006.062746342619
Leider lassen sich keine Übereinstimmungen zwischen den Flächenberechnungen
von QGIS und RTTOPO erkennen. Zudem sind die Unterschiede zwischen `
`area(geometry) ` und `st_area(geom,0)` gravierend.
RTTOPO (https://gitea.osgeo.org/rttopo/librttopo) ist schon ziemlich in die
Jahre gekommen und ich nehme an, dass die Unterschiede in der Verwendung der
veralterten proj4 Bibliothek zu begründen sind.
@Nane:
Bleib erst mal beim Geopackage, bevor du dich auf eine für dich ungewisse
Reise ins SpatiaLite-Land begibst. Der Umstieg ist zwar nicht besonders
schwer, aber es braucht tiefer greifende Kenntnisse über die Datenbank
Schemata dieser beiden Formate. Zudem unterstützt dich QGIS bei der Handhabung
von GPKG um einiges besser, als dies bei SpatiaLite der Fall ist.
Was deinen View anbelangt, kannst du natürlich auf die planare
Flächenberechnung umsteigen. Um jedoch an die Ergebnisse von `$area`
heranzukommen, hindert dich niemand daran, in der Elterntabelle des Views den
Quotienten von planarer und ellipsoidaler Fläche zu berechnen und diesen als
Korrekturfaktor im View zu verwenden.
Zudem solltest du die Flächen auf ein vernünftiges Maß runden. Ich nehme nicht
an, dass die Gartenfreunde im Mikrometerbereich gärtnern ;-)
Gruß
Bernd
Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste