[QGIS-pt] Função automática para devolver um dado atributo com a georeferenciação
Carlos Jacinto
carlosjacinto hotmail.com
Terça-Feira, 12 de Agosto de 2014 - 08:15:47 PDT
Olá Alexandre boa tarde,
Encontro-me familiarizado com os triggers , faço uso dos mesmos para registar utilizadores que criam ou alteram registos e respectivas datas de criação e modificação.
No entanto a partir do exemplo que me indicou não consigo perceber como poderei adaptar para obter o nome da freguesia que é atributo do poligono.
Seria possível demonstrar-me como o fazer ?
TABLE papeleira
(pap_cod integer NOT NULL ,
pap_freg Text,
geom geometry,)
TABLE freguesias
(freg_cod integer NOT NULL ,
freg_nome Text,
geom geometry,)
Grato pela sua comprensão.
____________________________________________________________ //______________________________________________
CREATE OR REPLACE FUNCTION update_geometry_fields()<code class="sql keyword">RETURNS</code> <code class="sql keyword">trigger</code> <code class="sql keyword">AS</code>$BODY$DECLARElat_long TEXT;BEGIN-- Cálculo da área da geometriaNEW.area = st_area(NEW.geom); -- Cálculo da latitude e longitude do centroíde da geometria em graus minutos e segundoslat_long := ST_AsLatLonText(st_transform(st_centroid(NEW.geom), 4326));NEW.latitude = split_part(lat_long,' ',1);NEW.longitude = split_part(lat_long,' ',2); RETURN NEW;END;$BODY$LANGUAGE plpgsql VOLATILE
CREATE TRIGGER update_epvu_sgev_geom_fieldsBEFORE INSERT OR UPDATE OF geomON epvu.sgevFOR EACH ROWEXECUTE PROCEDURE update_geometry_fields();
Date: Tue, 12 Aug 2014 11:14:28 +0100
From: senhor.neto gmail.com
To: qgis-pt lists.osgeo.org
Subject: Re: [QGIS-pt] Função automática para devolver um dado atributo com a georeferenciação
Bom dia Carlos,
Esssa função pode ser implementada directamente no Postgis com o recurso a triggers.
Há uns tempos escrevi um post sobre como usar os triggers. Pode ser que o ajude:
http://sigsemgrilhetas.wordpress.com/2013/12/03/triggers-para-que-vos-quero/
O código do primeiro exemplo pode ser alterado de forma a fazer a intersecção entre as geometrias das tabelas que refere e obter o nome da freguesia.
Cumprimentos,
Alexandre Neto
2014-08-12 10:18 GMT+01:00 Carlos Jacinto <carlosjacinto hotmail.com>:
Bom dia,
Já faz algum tempo que gostaria de implementar uma função automática para devolver um dado atributo com a georeferenciação.
Ex: Tenho um projecto em qgis com dois layers. Um layer de pontos "papeleira" e um segundo layer do tipo poligonal "freguesias".
Pretendia que ao georeferenciar uma "papeleira" a coluna 'pap_freg' fosse automaticamente prenchida através de uma função de intersecção com o poligono "freguesias" e com o seu atributo 'freg_nome' correspondente.
Aqui fica a estrutura exemplificativa das tabelas:
TABLE papeleira
(pap_cod integer NOT NULL ,
pap_freg Text,
geom geometry,)
TABLE freguesias
(freg_cod integer NOT NULL ,
freg_nome Text,
geom geometry,)
Já realizei várias tentativas de expressões e funções mas sem sucesso, ficaria muito grato pelo vosso apoio.
Cumprimentos,
Carlos Jacinto
_______________________________________________
QGIS-pt mailing list
QGIS-pt lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
_______________________________________________
QGIS-pt mailing list
QGIS-pt lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
-------------- próxima parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.osgeo.org/pipermail/qgis-pt/attachments/20140812/0dddac94/attachment-0001.html>
More information about the QGIS-pt
mailing list