Pages: 1
- Sujet précédent - ogr2ogr export table Postgis en Shape suite à requete spatiale - Sujet suivant
#1 Fri 20 July 2012 10:11
- guibouvier
- Participant actif
- Date d'inscription: 23 Jan 2007
- Messages: 104
ogr2ogr export table Postgis en Shape suite à requete spatiale
Bonjour la Communauté,
je cherche à exporter en shape le résultat d'une requete spatiale effectuée sous Postgis.
La requete sous Postgis est de type "trouver tous les occupants situés dans un périmètre de 400m autour d'un batiment".
la requete SQL ci-dessous lancée sous Postgis fonctionne parfaitement et renvoie un résultat correct:
Code:
SELECT num_voirie.gc_key, num_voirie.nom, num_voirie.occupant FROM num_voirie join bati_dur on ST_DWithin (num_voirie.geometrie, bati_dur.geometrie, 400) where bati_dur.gc_key='5127420';
A présent, je cherche à partir de Fwtools à créer le shape correspondant au résultat de ma requete. Voici le code que j'écris:
Code:
ogr2ogr -f "ESRI Shapefile" c:\transfo\test.shp PG:"host=192.168.1.149 user=postgres dbname=cadastre password=monmotdepasse" -sql "select num_voirie.gc_key, num_voirie.nom, num_voirie.occupant from num_voirie join bati_dur on ST_DWithin (num_voirie.geometrie, bati_dur.geometrie, 400) where bati_dur.gckey='5127420'"
J'ai alors un message d'erreur du type: "ERROR1 : ERROR: current transaction is aborted, commands ignored until end of transaction block"
Est ce que je m'y prends mal, existe-t-il une autre solution ?
D'avance merci pour votre aide
Cordialement
Hors ligne
#2 Fri 20 July 2012 11:53
- tqhien
- Participant actif
- Lieu: Clamart
- Date d'inscription: 22 Apr 2011
- Messages: 78
Re: ogr2ogr export table Postgis en Shape suite à requete spatiale
Bonjour,
Ce type de message apparaît quand l'appel à la requête renvoie une erreur. Je pencherai pour un problème de version entre fwtools, gdal et postgresql. Est-ce que des requêtes simple (select * from matable) fonctionne déjà ?
Hien.
Hors ligne
#3 Fri 20 July 2012 15:35
- guibouvier
- Participant actif
- Date d'inscription: 23 Jan 2007
- Messages: 104
Re: ogr2ogr export table Postgis en Shape suite à requete spatiale
J'utilise la version 2.4.7 de FWTools et la version 8.3 de Postgre
J'ai testé cette 1ere requête:
Code:
ogr2ogr -f "ESRI Shapefile" c:\transfo\test_ogr.shp PG:"host=192.168.1.149 user=postgres dbname=cadastre password=monmotdepasse" "num_voirie"
le fichier shape a bien été créé, je l'ai ouvert sous Qgis, tout est ok
J'ai testé cette seconde requete avec une clause SQL limitant la table aux objets d'une commune (sur la champ Planche):
Code:
ogr2ogr -f "ESRI Shapefile" c:\transfo\test_ogr2.shp PG:"host=192.168.1.149 user=postgres dbname=cadastre password=monmotdepasse" -sql "select voie_nom, occupant from num_voirie where planche='26295'"
et là par contre, je n'ai pas d'erreur mais le résultat est très bizarre lorsqu'on consulte sous Qgis.
En effet, ma table Postgis d'origine contient des objets ponctuels (des numéros de voie) et ogr2ogr me crée une couche shape de type linéaire ! Le plus bizarre c'est que les objets ont bien été filtrés avec les attributs demandés mais rien n'apparait sous Qgis (même en zoomant sur l'emprise de la couche)!
J'avoue être un peu déboussolé. Est ce que la synthaxe de ma ligne de commande est correcte ?
Hors ligne
#4 Sat 21 July 2012 14:03
- rouault
- Participant assidu
- Date d'inscription: 26 Apr 2009
- Messages: 166
Re: ogr2ogr export table Postgis en Shape suite à requete spatiale
Il faut ajouter dans ta requête SQL le nom de la colonne qui contient la géométrie, soit "geometrie" si j'ai bien suivi :
Code:
ogr2ogr -f "ESRI Shapefile" c:\transfo\test_ogr2.shp PG:"host=192.168.1.149 user=postgres dbname=cadastre password=monmotdepasse" -sql "select voie_nom, occupant, geometrie from num_voirie where planche='26295'"
Quant à ta première requête qui échouait, je ne sais pas trop pourquoi. Je te conseille d'utiliser un binaire plus récent que FWTools qui n'est plus maintenu, par exemple comme ceux dispos sur http://vbkto.dyndns.org/sdk/ . Normalement à partir de GDAL 1.9.0, le message d'erreur est plus explicite si je me souviens bien
Hors ligne
#5 Tue 24 July 2012 12:26
- guibouvier
- Participant actif
- Date d'inscription: 23 Jan 2007
- Messages: 104
Re: ogr2ogr export table Postgis en Shape suite à requete spatiale
Il faut ajouter dans ta requête SQL le nom de la colonne qui contient la géométrie, soit "geometrie" si j'ai bien suivi :
Effectivement, j'avais oublié de préciser le champ "geometrie" dans la requete SQL. J'ai testé et le résultat est correct
Pour la requete avec le ST_Dwithin, je testerai demain avec une version plus récente de FwTools.
en tout cas, merci pour les éléments de réponse.
Cordialement
Hors ligne
#6 Wed 25 July 2012 11:15
- guibouvier
- Participant actif
- Date d'inscription: 23 Jan 2007
- Messages: 104
Re: ogr2ogr export table Postgis en Shape suite à requete spatiale
Quant à ta première requête qui échouait, je ne sais pas trop pourquoi. Je te conseille d'utiliser un binaire plus récent que FWTools
Re,
j'ai suivi tes conseils et retélécharger Gdal à partir de OsGeo4W. J'ai lancé cette requête sous OSGeo4WShell:
Code:
ogr2ogr -f "ESRI Shapefile" c:\transfo\test2.shp PG:"host=192.168.1.149 user=postgres dbname=cadastre password=monmotdepasse" -sql "select num_voirie.nom, num_voirie.occupant, num_voirie.geometrie from num_voirie join bati_dur on ST_DWithin (num_voirie.geometrie, bati_dur.geometrie, 400) where bati_dur.gc_key='5127420'"
Et là génial ! tout a parfaitement fonctionné
Merci encore pour ton aide
Hors ligne
Pages: 1
- Sujet précédent - ogr2ogr export table Postgis en Shape suite à requete spatiale - Sujet suivant