L’opzione di usare un altro visualizzatore è da scartare perchè l’operazione è inserita in un contesto più ampio che si appoggia su grass/qgis.
Ho provato a porre contraints sulla view. Di sicuro non è (giustamente) possibile definire chiavi, ma da quello che ho trovato neanche unicità di un campo (e in effetti su una view queste operazioni hanno poco senso).
il suggerimento di emilia è ottimo (visto che mi riferisco allo stesso contesto reali del monitoraggio della fauna). Ma non una soluzione valida in generale.
Però. Continuo a non capire perchè qgis non accetti un campo che “di fatto” è un int4 unico.
Forse in caso non sia definito in postgres, qgis potrebbe chiedere quale è il campo che si vuole usare come “chiave” ed eventualmente verificare che sia unico nella tabella, e solo allora rifiutare di visualizzare.
Così come stanno le cose, e mi pare che voi confermiate, è una forte limitazione con mi sembra poche ragioni pratiche.
grazie delle risposte
F.
On Ter Jun 5 7:33 , Emilia Venturato
Ciao Ferdinando,
la mia soluzione non e’ elegantissima ma quando mi ci sono trovata ho
fatto cosi’Una volta mi era capitato un caso simile con i fagiani. Facevo un group
by id_fagiano della tabella fix.
Ho usato quindi un join su una tabella in cui avevo tutti gli animali
con una chiave primaria.Non so se hai modo di riferirti ad una tabella in cui ci sia un record
per ogni id_linea. Usandola in un join dovrebbe andare.Se mi viene in mente altro ti faccio sapere.
ciao
liafeurbano@clix.pt ha scritto:
Salve a tutti.
Da una serie di punti (ordinati per timestamp) voglio ricostruire in
pstgres/postgis una traiettoria.CREATE OR REPLACE VIEW prova AS
select nextval(‘contatore’)::int4 as ID,
makeline(geometria)
from (select geometria, id_linea from fix_caprioli
where hr_code is not null order by time_stamp) as foo
group by id_linea;
ALTER TABLE prova OWNER TO postgres;la cosa funziona perfettamente in postgres.
se però provo a visualizzare in postgis mi dice:
“Qgis requires that the view has a column that can be used as a unique key.
Such a column should be derived from a table column of type int4 and be a
primary key, have a unique constraint on it, or be a PostgreSQL oid column.”
Il che va bene, è noto. M più che aver creato un contatore e pure assicurato
che fosse un int4 non saprei che fare. ovviamente data la funzione makeline
non posso riferirmi alla primary key della tabella di origine, visto che si
utilizza un group by.Qualcuno ha suggerimenti?
Grazie
Ferdinando
Gfoss mailing list: 220 iscritti (28-05-2007)
Gfoss@faunalia.com
http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss–
Emilia Venturato
email+jabber: venturato@faunalia.it
www.faunalia.it
Tel: (+39) 347-2770007 Tel+Fax: (+39) 0587-213742
Piazza Garibaldi 5 - 56025 Pontedera (PI), Italy
http://www.faunalia.it/ev