[Portugal] Criar coluna calcule a área em PostGIS automaticamente

Jorge Gustavo Rocha jgr di.uminho.pt
Quinta-Feira, 2 de Abril de 2015 - 01:57:34 PDT


Olá Nuno,

Tens que criar, na base de dados, um trigger que é despoletado sempre 
que houver uma alteração da geometria. O triiger em si, chama uma 
função, pelo que tens algo do género:

CREATE TRIGGER actualiza_parcela
   BEFORE INSERT OR UPDATE
   ON "Parcela"
   FOR EACH ROW
   EXECUTE PROCEDURE calcula_dados_parcela();


CREATE OR REPLACE FUNCTION calcula_dados_parcela()
   RETURNS TRIGGER AS
$BODY$
    BEGIN
        NEW.AreaHectares := st_area(NEW.geom)/10000;
        RETURN NEW;
    END;
  $BODY$
    LANGUAGE 'plpgsql' VOLATILE

Bom trabalho,

J. Gustavo

On 02-04-2015 09:47, nmrcortes  gmail.com wrote:
>
> Quero criar uma coluna numa tabela (polígono) no PostGIS que calcule a
> área automaticamente e que a mantenha actualizada sempre que se altere a
> geometria do polígono no Qgis.
>
> Com o seguinte SQL:
> UPDATE "Parcela" SET AreaHectares=ST_AREA(geom)/10000;
> FROM
>    "Parcela"
>
> Faz a actualização da área mas tenho que fazer o Update sempre que
> altero a geometria.
> Há alguma forma de fazer isto automaticamente?
>
> Obrigado
> Nuno Cortês
>
>
>
>
> _______________________________________________
> Portugal mailing list
> Portugal  lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/portugal
>

J. Gustavo
-- 
Jorge Gustavo Rocha
Departamento de Informática
Universidade do Minho
4710-057 Braga
Tel: +351 253604480
Fax: +351 253604471
Móvel: +351 910333888
skype: nabocudnosor


More information about the Portugal mailing list