#1 Thu 21 February 2013 15:34
- jerome.guillaume
- Juste Inscrit !
- Date d'inscription: 3 Nov 2011
- Messages: 7
probleme import de shp to pgsql
Bonjour,
nouveau venu dans la communauté des utilisateurs de postgre postgis, je tiens à m'excuser à l'avance si je n'ai pas retrouvé ce que je cherchais dans la masse de questions déjà résolues.
Voilà mon problème:
je souhaite importer une couche occupation du sol (qui possède donc un .shp et .dbf et .prj dans le même répertoire) dans ma base de donnée postgre postgis
j'execute la commande
PGCLIENTENCODING=WIN1252 shp2pgsql -D -s 2154 -g geom -W ISO-8859-1 -I /data/tempdump/bdsigale/evol0509.shp referentiels.evol0509 | psql -U postgres -d fichiersfonciers -q -h 172.16.50.133 -p 5432
et j'obtiens ceci
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
Password for user postgres:
NOTICE: CREATE TABLE will create implicit sequence "evol0509_gid_seq" for serial column "evol0509.gid"
NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index "evol0509_pkey" for table "evol0509"
ERROR: AddGeometryColumns() - invalid SRID
CONTEXT: SQL statement "SELECT AddGeometryColumn('',$1,$2,$3,$4,$5,$6)"
PL/pgSQL function "addgeometrycolumn" line 5 at SQL statement
ERROR: current transaction is aborted, commands ignored until end of transaction block
sur ce nous essayons de faire en deux etapes:
PGCLIENTENCODING=WIN1252 shp2pgsql -s 2154 -g geom -I /data/tempdump/bdsigale/evol0509.shp referentiels.toto>/data/tempdump/bdsigale/toto.sql
cela fonctionne et nous génère un fichier sql:
SET CLIENT_ENCODING TO UTF8;
SET STANDARD_CONFORMING_STRINGS TO ON;
BEGIN;
CREATE TABLE "referentiels"."toto" (gid serial,
"area" numeric,
"perimeter" numeric,
"evol0509_m" int4,
"evol0509_1" int4,
"code05" varchar(2),
"corine05" numeric,
"theme05" varchar(254),
"niv1bis05" varchar(2),
"evol0509" int4,
"code09" varchar(2),
"corine09" numeric,
"theme09" varchar(254),
"niv1bis09" varchar(2));
ALTER TABLE "referentiels"."toto" ADD PRIMARY KEY (gid);
SELECT AddGeometryColumn('referentiels','toto','geom','2154','MULTIPOLYGON',2);
INSERT INTO "referentiels"."toto" ("area","perimeter","evol0509_m","evol0509_1","code05","corine05","theme05","niv1bis05","evol0509","code09","corine09","theme09","niv1bis09",geom) VALUES ('4.92525746548e+003','3.16215618401e+002','2','1','DS','3.31300000000e+003','DUNES BLANCHES','3','1','DG','3.31200000000e+003','DUNES GRISES','3','01060000206A0800000100000001030000000100000016000000C0F1D22DD75E2441DC240675741F5B410086C9B4D95E244190317711751F5B410032E64ED25E244140575B9D781F5B4180ABADB8BD5E24412CB29DD3791F5B414027A0A99F5E244184E2C7BC7B1F5B41C08251A9995E2441DCF97EDE7B1F5B41C03923EAB55E2441AC3E57E77C1F5B4140E17AF4F55E244158EC2F377F1F5B4100CAC3622F5F244104560EF1811F5B41000000205A5F244178BE9F26841F5B41C0CCCCEC5F5F2441AC8BDBE4841F5B41C09F1ACF6B5F2441506B9A33821F5B41C0DFBE2E765F244198900F467C1F5B41000DE00D5C5F2441787AA5E0791F5B418058A8954E5F2441CCAACF31751F5B41C00209EA335F244158EC2FAF711F5B4100A69B84045F2441C4B12E326E1F5B41406519E2ED5E2441085F98B06E1F5B4180BE9FBAD55E244144D8F000721F5B41C07F48FFD15E24419C081B52721F5B4180B74042CF5E24414894F68A721F5B41C0F1D22DD75E2441DC240675741F5B41');
INSERT INTO "referentiels"."toto" .....etc
mais à l'execution dans PGAdmin
nous obtenons le message d'erreur suivant
NOTICE: CREATE TABLE will create implicit sequence "toto_gid_seq" for serial column "toto.gid"
NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index "toto_pkey" for table "toto"
ERROR: AddGeometryColumns() - invalid SRID
CONTEXT: SQL statement "SELECT AddGeometryColumn('',$1,$2,$3,$4,$5,$6)"
PL/pgSQL function "addgeometrycolumn" line 5 at SQL statement
********** Erreur **********
ERROR: AddGeometryColumns() - invalid SRID
État SQL :P0001
Contexte : SQL statement "SELECT AddGeometryColumn('',$1,$2,$3,$4,$5,$6)"
PL/pgSQL function "addgeometrycolumn" line 5 at SQL statement
avec en bas à gauche de la fenetre requete: ERROR: AddGeometryColumns() - invalid SRID Etat SQL: P0001 statement...
Je ne sais pas ce que cela peut signifier.
Merci de votre aide
Hors ligne
#2 Thu 21 February 2013 16:45
Re: probleme import de shp to pgsql
Bonjour,
Ca me parait effectivement bizarre :
SELECT AddGeometryColumn('referentiels','toto','geom','2154','MULTIPOLYGON',2);
Le srid est un entier, or ici c'est une chaine, es tu certaine que la commande que tu as lancé ne serais pas quelque chose comme :
Code:
shp2pgsql -D -s '2154' -g geom -W ISO-8859-1 -I /data/tempdump
Ce qui est faux.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Thu 21 February 2013 17:13
- jerome.guillaume
- Juste Inscrit !
- Date d'inscription: 3 Nov 2011
- Messages: 7
Re: probleme import de shp to pgsql
oui mon chef a fait la même remarque quand on est passé sous PG admin.
Nous avons testé ensuite en repassant le 2154 sans les '.
Code:
SELECT AddGeometryColumn('referentiels','toto','geom',2154,'MULTIPOLYGON',2);
cela ne marche pas plus. cela donne la même erreur mais remarquée plus longtemps après. 25 sec d'execution avant de m'afficher l'erreur
Code:
NOTICE: CREATE TABLE will create implicit sequence "toto_gid_seq" for serial column "toto.gid" NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index "toto_pkey" for table "toto" ERROR: AddGeometryColumns() - invalid SRID CONTEXT: SQL statement "SELECT AddGeometryColumn('',$1,$2,$3,$4,$5,$6)" PL/pgSQL function "addgeometrycolumn" line 5 at SQL statement ********** Erreur ********** ERROR: AddGeometryColumns() - invalid SRID État SQL :P0001 Contexte : SQL statement "SELECT AddGeometryColumn('',$1,$2,$3,$4,$5,$6)" PL/pgSQL function "addgeometrycolumn" line 5 at SQL statement
j'ai tenté autre chose pour importer ma table vers ma base postgre/postgis...
Je suis passé par QGIS et le DBmanager
il m'importe bien le shp que je veux mais ne la considère pas comme une table spatiale oOoO (alors que je peux afficher le shp dans QGIS sans problème.
je sais pas si cela vous aide à analyser le problème mais dans tous les cas merci d'essayer de m'aider.
Hors ligne
#4 Thu 21 February 2013 17:16
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: probleme import de shp to pgsql
Bonjour,
Ca veut surement dire que le fichier spatial_ref_sys.sql n'a pas ete installé sur la base fichiersfonciers
Que donnent les commandes, sur cette base:
select postgis_full_version();
et
select count(*) from spatial_ref_sys;
Nicolas
Hors ligne
#5 Thu 21 February 2013 17:42
- jerome.guillaume
- Juste Inscrit !
- Date d'inscription: 3 Nov 2011
- Messages: 7
Re: probleme import de shp to pgsql
bon ca y est nous avons trouvé où le bat blessait....
Il s'agissait tout simplement de la table spatial_ref_sys qui était vide.
Notre service nous a installé postgis 1.5.7 et je ne savais même pas qu'il y avait des requetes à executer pour finir l'installation correctement.
Nous avons retrouver le fichier requete à executer et bizarrement cela a fonctionné.
Merci
EDIT: merci Nicolas de la réponse d'ailleurs que je n'avais pas vu hélas
Dernière modification par jerome.guillaume (Thu 21 February 2013 17:43)
Hors ligne