Hallo!
Ich habe nun eine Lösung für eine automatische Flächenberechnung in PostGIS. Diese automatische Berechnung wird in anderen GIS-Produkten angeboten und kann den Umstieg aus PostGIS eventuell ein bisschen angenehmer machen.
CREATE OR REPLACE FUNCTION calc_area()
RETURNS "trigger" AS
$BODY$
BEGIN
-- Aktualisiert bei derjenigen Zeile, bei der etwas geändert (UPDATE) bzw.
-- eingefügt (INSERT) wird die Spalte flaeche_qm und flaeche_ha
NEW.flaeche_qm = st_area(NEW.geometry);
NEW.flaeche_ha = NEW.flaeche_qm/10000.;
RETURN NEW;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION calc_area() OWNER TO postgres;
CREATE TRIGGER test_calc_area
-- Wichtig ist, dass der TRIGGER BEFORE und
-- nicht AFTER UPDATE OR INSERT geschaltet wird!
BEFORE INSERT OR UPDATE
ON test
FOR EACH ROW
EXECUTE PROCEDURE calc_area();
Gruß,
Johannes