Ciao a tutti,

mi sono arenato su un problema cui non riesco a trovare una soluzione…

Vorrei estrarre alcuni dati da una copertura e passarli ai campi di una tabella 
puntuale, in base  alla posizione di nuovi punti che inserisco, ossia nel caso 
specifico passare il codice provincia e comune ai nuovi punti inseriti in una 
tabella “sito_puntuale”. I dati comune e provincia sono su una tabella spaziale 
“am_com”. Il tutto è in un database PGsql.

Come in precedenza pensavo di risolvere il problema con un trigger, e quindi ho 
creato la seguente funzione sfruttando ST_Wtithin di postgis:




CREATE OR REPLACE FUNCTION indagini.cal_idn()
  RETURNS trigger AS
$BODY$DECLARE
        cod          character(6);
BEGIN
        -- codcom da public.am_com
 cod = codcom FROM public.am_com AS c,indagini."Sito_Puntuale" AS s WHERE 
(ST_Within(NEW.the_geom,c.geom));
 -- calcola ubicazione_prov e ubicazione_com
        NEW.ubicazione_prov = substr(cod, 1, 3);
        NEW.ubicazione_com = substr(cod, 4, 3);
        RETURN NEW;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION indagini.cal_idn()
  OWNER TO postgres;
GRANT EXECUTE ON FUNCTION indagini.cal_idn() TO public;
GRANT EXECUTE ON FUNCTION indagini.cal_idn() TO postgres;




Purtroppo quando però vado a salvare mi viene restituito il seguente messaggio 
di errore:






Could not commit changes to layer Sito_Puntuale 
Errors: ERROR: 1 feature(s) not added.



Provider errors:

PostGIS error while adding features: ERRORE: la query "SELECT codcom FROM 
public.am_com AS c,indagini."Sito_Puntuale" AS s WHERE (ST_Within( $1 
,c.geom))" ha restituito più di una riga

CONTEXT: funzione PL/pgSQL "cal_idn" riga 5 a assegnazione




Il tutto funziona solo con il 1° punto inserito in una tabella vuota. Mi sembra 
di aver capito che il problema risieda nel fatto che la funzione ST_Within 
considera tutte le geometriepresenti nella tabella “Sito_puntuale” e non solo 
la NEW​….

Qualche buon anima mi saprebbe aiutare?

Grazie in anticipo




Alessandro Ciali





Da: Luca Lanteri
Data invio: ‎lunedì‎ ‎13‎ ‎luglio‎ ‎2015 ‎09‎:‎21
A: Alessandro Ciali
Cc: GFOSS.it







CIao Alessandro, 
grazie mille per la disponibilità.


Non ti preoccupare, tutto quello che vedi è stato fatto da autodidatti con 
conoscenze minime di programmazione, e proprio per questo che è ancora più 
importante unire forze e le competenze.
In Piemonte diversi professionisti hanno iniziato ad utilizzare questi 
strumenti (mi pare di capire con soddisfazione) per realizzare i propri 
approfondimenti di microzonazione sismica con QGIS e stanno svolgendo un bel 
lavoro di testing. 


A  disposizione per qualsiasi chiarimento. 






a presto


Luca





Il giorno 11 luglio 2015 17:46, Alessandro Ciali <alessandro.ci...@gmail.com> 
ha scritto:







Sarei ben lieto di partecipare al miglioramento, a che non sono un genio della 
programmazione .a piuttosto un autodidatta coatto. Intanto scarichero' il tutto 
dal sito dell'ARPA per vedere se e come il mio lavoro possa integrare ciò che è 
stato fatto. Lavorando in parte nel campo della geologia per la pianificazione 
territoriale, ma lavorando prev. In toscana, ho sviluppato librerie di simboli 
che si attengono alle specifiche di questa regione; non mi sembra di aver 
trovato sul sito della RT librerie specifiche per QGIS, io le condividerei 
volentieri;  anzi visto che alcuni membri di RT partecipa a questa lista, 
potrebbero, se sono interessati, a darmi informazioni in merito. Per adesso 
grazie per le dritte, spero di poter contribuire. Saluti a tutti 




Inviato da Samsung Mobile.
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni 
dell'Associazione GFOSS.it.
750 iscritti al 18.3.2015

Rispondere a