Hallo!
Ich will eine automatische Flächenberechnung der Geometrien einer PostGIS-Tabelle erstellen. Ist aber an sich kein PostGIS-Thema, deswegen hab ichs mal hier rein gestellt.
Ich habe eine (postgis-)tabelle “flaechen” mit folgenden spalten:
id, area, geometry.
Nun gibt es in Postgis die Funktion Area(geometry), die mir die fläche berechnet und die man in einer SELECT-Anweisung aufruft.
testdb=# SELECT Area(geometry) FROM flaechen ORDER BY id;
area
------------------
3475.72464942932
2764.45471858978
980.085523605347
3005.54316997528
3867.55013656616
(5 Zeilen)
liefert mir also meine Flächenwerte. Diese will ich aber in die Spalte “area” eintragen lassen.
UPDATE flaechen
SET area = ( SELECT Area (geometry) FROM flaechen);
funktioniert nicht, da ja zuviele Werte ausgegeben werden.
INSERT INTO flaechen(area) SELECT Area(geometry) FROM flaechen ORDER BY id;
funktioniert zwar schon, aber die flächeneinträge werden nach den vorhandenen einträgen hinzugefügt.
vorher:
testdb=# select id, area from flaechen order by id;
id | area
----+------
0 |
1 |
2 |
10 |
11 |
(5 Zeilen)
nachher:
testdb=# select id, area from test order by id;
id| area
----+------------------
0 |
1 |
2 |
10 |
11 |
56 | 3475.72464942932
57 | 2764.45471858978
58 | 980.085523605347
59 | 3005.54316997528
60 | 3867.55013656616
(10 Zeilen)
Was gibts denn da für ne Möglichkeit, dass ich die berechneten Flächenwerte, die ja jeweils einen Bezug zur Geometrie haben müssen, eintragen lassen kann?
gruß,
Johannes