[Gfoss] Spezza poligono con una polilinea

Salve a tutti,

Con QGis, ho necessità di spezzare interattivamente un poligono disegnando una polilinea.

OK, faccio questo usando “Spezza elemento” della “Digitalizzazione avanzata”. :slight_smile:

Quello che mi occorre, però, è che i nuovi poligoni abbiano un flag settato ad “1” (o alla data e ora di modifica), in modo da poter essere successivamente individuati.

E’ già possibile fare questo ? Oppure bisogna scrivere una nuova funzione python ?
Nel caso, potete darmi qualche indicazione o esempio simile ?

Grazie in anticipo

Ciao

Roberto

Temo che tu debba crearti un plugin, che intercetta l’editing e le feature “sporche”…

giovanni

Il giorno 11 dicembre 2012 11:10, Geo DrinX <geodrinx@gmail.com> ha scritto:

Salve a tutti,

Con QGis, ho necessità di spezzare interattivamente un poligono disegnando una polilinea.

OK, faccio questo usando “Spezza elemento” della “Digitalizzazione avanzata”. :slight_smile:

Quello che mi occorre, però, è che i nuovi poligoni abbiano un flag settato ad “1” (o alla data e ora di modifica), in modo da poter essere successivamente individuati.

E’ già possibile fare questo ? Oppure bisogna scrivere una nuova funzione python ?
Nel caso, potete darmi qualche indicazione o esempio simile ?

Grazie in anticipo

Ciao

Roberto


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.
630 iscritti al 1.12.2012

Temo che tu debba crearti un plugin, che intercetta l'editing e le feature "sporche"...

Intendi un "evento" durante l'editing ?
Hai qualche link di esempio?

Ciao e grazie :slight_smile:

Roberto

Purtroppo non riesco a darti granché input, perché non ho esempi sottomano.
L’unica è andare a vedere cosa conviene intercettare all’interno di QgsVectorLayer [1]

[1] https://github.com/qgis/Quantum-GIS/blob/release-1_8/src/core/qgsvectorlayer.cpp

Il giorno 11 dicembre 2012 11:36, Geodrinx <geodrinx@gmail.com> ha scritto:

Temo che tu debba crearti un plugin, che intercetta l’editing e le feature “sporche”…

Intendi un “evento” durante l’editing ?
Hai qualche link di esempio?

Ciao e grazie :slight_smile:

Roberto

Se usi postgis puoi creare abbastanza facilmente un trigger. Se scegli qs soluzione ti posso mandare un esempio su come fare.

Il giorno 11/dic/2012 12:28, “G. Allegri” <giohappy@gmail.com> ha scritto:

Purtroppo non riesco a darti granché input, perché non ho esempi sottomano.
L’unica è andare a vedere cosa conviene intercettare all’interno di QgsVectorLayer [1]

[1] https://github.com/qgis/Quantum-GIS/blob/release-1_8/src/core/qgsvectorlayer.cpp

Il giorno 11 dicembre 2012 11:36, Geodrinx <geodrinx@gmail.com> ha scritto:

Temo che tu debba crearti un plugin, che intercetta l’editing e le feature “sporche”…

Intendi un “evento” durante l’editing ?
Hai qualche link di esempio?

Ciao e grazie :slight_smile:

Roberto


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.
630 iscritti al 1.12.2012

Inviato da iPhone

Il giorno 14/dic/2012, alle ore 18:42, Luca Lanteri <mescal72@gmail.com> ha scritto:

Se scegli qgis ti posso mandare un esempio su come fare.

sarebbe mitico :slight_smile:

Grazie

Roberto

Ma in questo momento stai già utilizzando i tuoi dati su postgres ?

···

Il giorno 14 dicembre 2012 19:26, Geodrinx <geodrinx@gmail.com> ha scritto:

Inviato da iPhone

Il giorno 14/dic/2012, alle ore 18:42, Luca Lanteri <mescal72@gmail.com> ha scritto:

Se scegli qgis ti posso mandare un esempio su come fare.

sarebbe mitico :slight_smile:

Grazie

Roberto

Si. Io ho le tue stesse necessità e in PG con 2 trigger ho risolto tutto. Ad ogni nuovo inserimento o modifica vengono compilati 2 campi con l’autore e la data. Con Spatialite penso che si possa fare all’incirca nello stesso modo, forse campia di poco la sintassi. Con gli shapefile invece penso che l’unica sia python. Spero possa esseri utile:

···

Il giorno 16 dicembre 2012 22:29, Geo DrinX <geodrinx@gmail.com> ha scritto:

Il giorno 16 dicembre 2012 20:40, Luca Lanteri <mescal72@gmail.com> ha scritto:

Ma in questo momento stai già utilizzando i tuoi dati su postgres ?

Se occorre posso utilizzare postgres, ma preferirei lavorare soltanto su SHP, o al massimo con SpatiaLite. La tua soluzione fa uso di un trigger ?

Ciao e grazie

Roberto

CREATE OR REPLACE FUNCTION schema.autore()
RETURNS trigger AS
$BODY$
BEGIN
NEW.data_crea := substr(current_timestamp::text,1,19);
NEW.autore_crea := current_user;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION schema.autore()
OWNER TO postgres;

CREATE TRIGGER tr_autore
BEFORE INSERT
ON schema.tavola
FOR EACH ROW
EXECUTE PROCEDURE schema.autore ();

CREATE OR REPLACE FUNCTION schema.modifica()
RETURNS trigger AS
$BODY$
BEGIN
NEW.data_mod := substr(current_timestamp::text,1,19);
NEW.autore_mod := current_user;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION schema.modifica ()
OWNER TO postgres;

CREATE TRIGGER tr_modifica
BEFORE UPDATE
ON schema.tavola
FOR EACH ROW
EXECUTE PROCEDURE schema.modifica();