Pages: 1
- Sujet précédent - Shp2pgsql en ligne de commande/insertion de plusieurs shp - Sujet suivant
#1 Wed 28 March 2018 16:19
- EvaNounou
- Juste Inscrit !
- Date d'inscription: 8 Mar 2018
- Messages: 8
Shp2pgsql en ligne de commande/insertion de plusieurs shp
Bonjour à tous,
J'essaye désespérément d'importer tous mes shp commune provenant de l'IGN dans une base postgreSQL. J'ai fais plusieurs recherche et il faudrait que je passe par batch et que j'utilise shp2pgsql.
Donc, plusieurs questions :
- Comment utiliser shp1pgsql en lignes de commande sur Windows ? je n'y arrive pas et je ne sais même pas si il est installé sur mon ordi. Actuellement pour l'import de mes fichiers shape j'utilisais le GUI Postgis mais je ne peux pas en importer en masse en un seul coup donc ça ne va pas bien...
- Comment faire fonctionner le batch sur PostGIS ?
Merci pour votre aide,
Cordialement,
Eva
Hors ligne
#2 Thu 29 March 2018 15:18
- Nicolas Granier
- Participant assidu
- Date d'inscription: 19 Apr 2007
- Messages: 271
Re: Shp2pgsql en ligne de commande/insertion de plusieurs shp
Bonjour,
Allez je me lance. Point par point.
Effectivement, il vous faut bien shp2pgsql. shp2pgsql normalement est installé en même temps que plusieurs outils. Si vous avez Postgis d'installé sur votre poste aller faire un tour dans le dossier bien de postgresql, vous allez le trouver. Cet outil (c'est un fichier exe) est également installé avec divers outils comme Fwtools, osgeo4W,...
Pour l'exécuter rien de plus simple. Vous cliquer sur le gros bouton "Démarrer" de Windows, vous taper "cmd" puis faites "Entrée".
Normalement une belle fenêtre noire, écrite avec du texte en blanc apparait. C'est la console Windows. Les ennuis commencent ici. Pour lancer un exécutable il suffit de taper son nom puis de faire "Entrée". Seul hic Windows ne va pas s'embêter à passer tous les répertoires pour le trouver. De plus si l'exécutable est présent deux fois sur votre machine, lequel exécuter ? Il faut donc d'indiquer à windows ou celui ci se trouve.
Vous pouvez taper dans votre console :
Code:
C:\PostgreSQL91\bin\shp2pgsql.exe
normalement l'aide de l'outil s'affiche.
La comme shp2pgsql vous permet d'ajouter un fichier shp à la fois. Pour en intégrer plusieurs, il vous faut passer par un bath.
Une fichier bath est juste une fichier texte dans lequel vous mettez une liste de commande et que vous renommer en bath au lieu de txt. Il vous suffit ensuite d'executer le fichier bath de la même manière que l'exécutable que j'ai décrit ci-dessus.
Code:
exemple de fichier bath. shp2pgsql -s 2154 -g the_geom -W LATIN1 -D -I "fichier1.shp" nomfichier1 | psql -U login -d base -h serveur -p 5432 shp2pgsql -s 2154 -g the_geom -W LATIN1 -D -I "fichier2.shp" nomfichier2 | psql -U login -d base -h serveur -p 5432 shp2pgsql -s 2154 -g the_geom -W LATIN1 -D -I "fichier3.shp" nomfichier3 | psql -U login -d base -h serveur -p 5432 shp2pgsql -s 2154 -g the_geom -W LATIN1 -D -I "fichier4.shp" nomfichier4 | psql -U login -d base -h serveur -p 5432 shp2pgsql -s 2154 -g the_geom -W LATIN1 -D -I "fichier5.shp" nomfichier5 | psql -U login -d base -h serveur -p 5432 ...
Votre problématique doit être maintenant de remplir ce fichier. Il n'est pas nécessaire de faire de la programmation pour cela. Vous pouvez par exemple faire un fichier excel et découper votre commande en plusieurs colonnes en ne changeant que le nom des fichiers shp par exemple. Ensuite à partir d'export, de copier, coller, de transfert de format vous devez arriver à produire un fichier texte avec toutes vos commandes. Il ne vous restera plus qu'à le renommer en bath et à le lancer depuis la console. Si la solution "semi-manuelle" ne vous convient pas, il vous faudra passer par de la programmation, en python ou directement en DOS, au autres mais là si vous n'avez aucune notion de programmation vous partez un peu de loin.
bon courage
Nicolas GRANIER
Hors ligne
Pages: 1
- Sujet précédent - Shp2pgsql en ligne de commande/insertion de plusieurs shp - Sujet suivant