Das Folgende gibt mir die Fläche des Polygons in quadratischen Graden:
SELECT ST_Area(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',4326)) As sqm;
Ergebnis: 16586.2319335938
Wie bekomme ich die Fläche in Quadratmetern? Ich habe folgendes versucht:
SELECT ST_Area(ST_Transform(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',4326)),31467) As sqm;
Aber es scheint, dass ST_Transform nicht funktioniert. Ich erhalte die folgende Fehlermeldung:
ERROR: function st_transform(geometry) does not exist
LINE 1: SELECT ST_Area(ST_Transform(ST_GeomFromText('POLYGON((871325...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********
ERROR: function st_transform(geometry) does not exist
SQL Status:42883
Hint:No function matches the given name and argument types. You might need to add explicit type casts.
Fehlende Proj-Unterstützung sollte nicht das Problem sein, mit SELECT PostGIS_full_version () bekomme ich
"POSTGIS="1.5.3" GEOS="3.3.3-CAPI-1.7.4" PROJ="Rel. 4.8.0, 6 March 2012" LIBXML="2.8.0" USE_STATS"
SELECT ST_AREA(ST_Transform(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',900913),31467)) As sqm;
ist die richtige Syntax. Sie scheinen einige Kommas verwechselt zu haben.
quelle
Beide Abfragen definieren die SRID für das Polygon als 4326, aber basierend auf den Daten ist dies sicherlich nicht der Fall. SRID 4326 (WGS84) ist auf den Bereich [-90,90] für den Breitengrad und [-180,180] für den Längengrad beschränkt.
Wenn Sie in 4326 Polygondaten haben, ist die Verwendung von ST_GeogFromText möglicherweise ein besserer Ansatz. Dies setzt voraus, dass sich Ihre Daten in 4326 befinden und die Messungen der geografischen Merkmale in Metern erfolgen.
Eine Arbeitsabfrage folgt:
Ich habe auf 900913 anstatt auf 31467 umgestellt, da diese SRID den Bereich meiner Beispieldaten nicht abdeckt.
quelle