Lösung: Automatische Flächenberechnung

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