Editing in PostGIS

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Editing in PostGIS

Luca Lanteri-3
Ciao a tutti,

vi chiedo un aiuto su una cosa che forse potra essere banale ma a me rimane poco chiara.
Ho un layer di poligoni su postgis, con il solito campo gid di tipo serial che edito tramite Qgis. Quando faccio un nuovo inserimento funziona tutto ma se divido un poligono già esistente in più parti con la funzione "Split feature" il valore di gid viene assegnato ad entrambe i nuovi poligoni. Ovviamente a questo punto ho la chiave primaria duplicata e quindi non posso più salvare fino a quando non assegno manualmente un nuovo valore al campo gid. Facendo così la sequence non sia aggiorna ed al prossimo nuovo inserimento mi trovo di nuovo con il gid duplicato. Insomma come si dice cornuto e mazziato! 
Mi sto perdendo io qualcosa di estremamente semplice ? C'è un modo semplice per ovviare al problema ?

grazie in anticipo
Luca
     

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
584 iscritti al 7.4.2012
Reply | Threaded
Open this post in threaded view
|

Re: Editing in PostGIS

Sandro Santilli
On Thu, Apr 19, 2012 at 11:08:58AM +0200, Luca Lanteri wrote:

> Ciao a tutti,
>
> vi chiedo un aiuto su una cosa che forse potra essere banale ma a me rimane
> poco chiara.
> Ho un layer di poligoni su postgis, con il solito campo gid di tipo serial
> che edito tramite Qgis. Quando faccio un nuovo inserimento funziona tutto
> ma se divido un poligono già esistente in più parti con la funzione "Split
> feature" il valore di gid viene assegnato ad entrambe i nuovi poligoni.
> Ovviamente a questo punto ho la chiave primaria duplicata e quindi non
> posso più salvare fino a quando non assegno manualmente un nuovo valore al
> campo gid. Facendo così la sequence non sia aggiorna ed al prossimo nuovo
> inserimento mi trovo di nuovo con il gid duplicato. Insomma come si dice
> cornuto e mazziato!
> Mi sto perdendo io qualcosa di estremamente semplice ? C'è un modo semplice
> per ovviare al problema ?

Mi sembra un caso d'uso molto comune.
Quale pensi possa essere un comportamento migliore ?

Immagino che assegnare un nuovo id potrebbe farti perdere di vista i
componenti risultanti dallo split.

--strk;

  ,------o-.
  |   __/  |    Delivering high quality PostGIS 2.0 !
  |  / 2.0 |    http://strk.keybit.net - http://vizzuality.com
  `-o------'

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
584 iscritti al 7.4.2012
Reply | Threaded
Open this post in threaded view
|

Re: Editing in PostGIS

Luca Lanteri-3
nel mio caso il gid serve solo per avere una chiave primaria per Qgis, perchè il collegamento con gli altri oggetti del database avviene mediante un'altro codice.
La mia idea è che una delle parti dell'oggetto splittato potrebbe tenere il vecchio gid, mentre tutte le altre dovrebbero averne asseganto uno nuovo in automatico.
Cose devo fare ? un trigger ? Va gestito da Qgis ?

Il giorno 19 aprile 2012 11:38, Sandro Santilli <[hidden email]> ha scritto:
On Thu, Apr 19, 2012 at 11:08:58AM +0200, Luca Lanteri wrote:
> Ciao a tutti,
>
> vi chiedo un aiuto su una cosa che forse potra essere banale ma a me rimane
> poco chiara.
> Ho un layer di poligoni su postgis, con il solito campo gid di tipo serial
> che edito tramite Qgis. Quando faccio un nuovo inserimento funziona tutto
> ma se divido un poligono già esistente in più parti con la funzione "Split
> feature" il valore di gid viene assegnato ad entrambe i nuovi poligoni.
> Ovviamente a questo punto ho la chiave primaria duplicata e quindi non
> posso più salvare fino a quando non assegno manualmente un nuovo valore al
> campo gid. Facendo così la sequence non sia aggiorna ed al prossimo nuovo
> inserimento mi trovo di nuovo con il gid duplicato. Insomma come si dice
> cornuto e mazziato!
> Mi sto perdendo io qualcosa di estremamente semplice ? C'è un modo semplice
> per ovviare al problema ?

Mi sembra un caso d'uso molto comune.
Quale pensi possa essere un comportamento migliore ?

Immagino che assegnare un nuovo id potrebbe farti perdere di vista i
componenti risultanti dallo split.

--strk;

 ,------o-.
 |   __/  |    Delivering high quality PostGIS 2.0 !
 |  / 2.0 |    http://strk.keybit.net - http://vizzuality.com
 `-o------'



_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
584 iscritti al 7.4.2012