[Gfoss] mapfile - postgis
Luca Delucchi
lucadeluge a gmail.com
Mar 6 Maggio 2008 15:24:36 CEST
Il giorno mar, 06/05/2008 alle 14.56 +0200, Emilia Venturato ha scritto:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Luca Delucchi ha scritto:
>
> > Per prima cosa ho importato il file osm in postgres, il file manca di
> > una chiave primaria e perciņ ha dei problemi con qgis e mapserver, una
> > delle soluzioni che ho trovato in rete č di aggiungere il flag "Has
> > OIDs" in pgadminIII, ma non mi č permesso pur essendo l'amministratore
> > del database. Ho risolto aggiungendo una colonna seriale con chiave
> > primaria, anche se non penso sia la soluzione corretta.
>
> Ciao Luca,
> manca una chiave primaria ma penso che ci sia un campo identificativo
> univoco no? In genere si chiama gid o id.
Tabella "public.italy_line"
Colonna | Tipo |
Modificatori
-----------+----------+----------------------------------------------------------
osm_id | integer |
aeroway | text |
amenity | text |
bicycle | text |
bridge | text |
boundary | text |
building | text |
foot | text |
highway | text |
horse | text |
junction | text |
landuse | text |
layer | text |
learning | text |
leisure | text |
man_made | text |
motorcar | text |
name | text |
natural | text |
oneway | text |
place | text |
railway | text |
ref | text |
religion | text |
residence | text |
route | text |
sport | text |
tourism | text |
tunnel | text |
waterway | text |
z_order | integer |
way_area | real |
way | geometry |
key | integer | not null default
nextval('italy_line_key_seq'::regclass)
Indici:
"italy_line_pkey" PRIMARY KEY, btree ("key")
"italy_line_index" gist (way)
key e la chiave su key le ho aggiunte io; speravo che osm_id fosse
univoco, gli altri sicuramente non lo sono, ma avevo ricevuto questa
risposta
gis=# ALTER TABLE italy_line ADD primary key (osm_id);
NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index
"italy_line_pkey" for table "italy_line"
ERROR: impossibile creare un inidce univoco
DETAIL: La tabella contiene valori duplicati.
i dati gli ho importati con osm2pgsql
> Se c'e' basta trasformare quello in chiave primaria (altrimenti l'idea
> di mettere una colonna identificativa con chiave primaria non e' affatto
> sbagliata):
>
> da riga di comando:
>
> ALTER TABLE nometabella ADD CONSTRAINT nomechiaveprimaria
> PRIMARY KEY (campo_con_id_univoco);
>
> altrimenti da pgadminIII c'e' modo di mettere una chiave primaria su una
> colonna.
> Poi pero' quando usi mapserver devi dirgli che usi quel campo come
> chiave primaria perche', se non ricordo male, di default cerca l'oid di
> postgres.
>
Non l'ho letto da nessuna parte comunque cerco di informarmi meglio
>
> ciao
> Lia
>
ciao
Luca
Maggiori informazioni sulla lista
Gfoss