Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 08 April 2013 19:48

yasmine07
Participant occasionnel
Date d'inscription: 4 Mar 2013
Messages: 21

Problème avec ogr2ogr

Bonjour,

Je veux récupérer le résultat de mes requêtes sous format d'un shape file.

J'utilise la commande "ogr2ogr -f..."

J'ai remarqué que cette commande ne marche correctement et je ne récupère un shape file que si la géométrie sur laquelle j'effectue la requête (je n'ai le droit de requêter que sur une seule d'ailleurs) est de type Linestring ou multilinestring.

ça ne marche pas si c'est une géométrie de type POINT par exemple et un message d'erreur apparaît :

Code:

 Error : attempt to write non-linestring <POINT> geometry to ARC type shapefile

Est ce normal?

Merci pour votre aide.

Hors ligne

 

#2 Tue 09 April 2013 08:51

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Re: Problème avec ogr2ogr

Bonjour,

Le fichier d'origine doit contenir autre chose que des points ?


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#3 Tue 09 April 2013 09:41

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Problème avec ogr2ogr

Bonjour,

Vous pouvez verifier cela avec une requete de type:

Code:

select distinct geometryType(geom) from matable;

Nicolas

Hors ligne

 

#4 Thu 11 April 2013 12:37

yasmine07
Participant occasionnel
Date d'inscription: 4 Mar 2013
Messages: 21

Re: Problème avec ogr2ogr

Bonjour,

En fait ma requête est écrite à peu près comme ceci :

Code:

 Select Mafonction(arguments) from ma table

Tel que Mafonction retourne soit une géométrie de type POINT soit la valeur NULL

Donc :  en appliquant la requête de Nicolas j'ai comme retour deux types : Point et type vide rien en retour!

En essayant de modifier la requête comme ceci:

Code:

Select geometrytype(Mafonction(arguments)) from ma table where geometrytype(Mafonction(arguments) = 'POINT'

pour ne plus avoir en résultat que les géométries de type POINT...mais rien à faire!

Toujours le type 'vide' qui apparaît! à cause du NULL je suppose!

une idée?

Dois je éliminer le null dans Mafonction? Dans ce cas quel serait la valeur de retour de la géométrie si la condition n'est pas vérifiée?

Hors ligne

 

#5 Thu 11 April 2013 13:43

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Problème avec ogr2ogr

Bonjour,

C'est souvent le probleme avec la valeur NULL: des qu'on s'en sert ou qu'on l'evalue, le resultat obtenu est null aussi.

Vous avez plusieurs choix:

• Ne pas retourner de valeur nulle dans la fonction, par exemple en utilisant 'POINT EMPTY'::geometry comme geometrie vide
• Proteger l'appel de la fonction avec une autre fonction, coalesce, dont le but est d'eviter de manipuler des valeurs nulles:

Code:

select coalesce (colonne, 1);

Va renvoyer 1 si la colonne a une valeur nulle, et renvoyer sinon la valeur de la colone.

Votre appel pourrait etre:

Code:

Select geometrytype(coalesce(Mafonction(arguments), 'POINT EMPTY'::geometry)) from ma table;

Vous pouvez aussi appeler votre fonction apres le from, dans une sous requete pour filtrer les retours NULL de la fonction:

Code:

select * from (select col1 from mafonction()) as foo  where col1 is not null;

Nicolas

Hors ligne

 

#6 Thu 11 April 2013 14:23

yasmine07
Participant occasionnel
Date d'inscription: 4 Mar 2013
Messages: 21

Re: Problème avec ogr2ogr

Ok. Merci Nicolas.

Je vais essayer ces astuces .

Hors ligne

 

Pied de page des forums

Powered by FluxBB