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 Thu 03 November 2016 14:05

doublecriquet
Participant occasionnel
Date d'inscription: 10 Jul 2009
Messages: 28

QGIS: Prob affichage symbole '°' couche shp resultant d'un traitement

Bonjour,

Je viens faire appel à votre aide, car je ne trouve pas de solution à mon problème, ni par moi même , ni dans les pages de ce forum...
Je suis sur QGIS 2.14.8 Win7.

J'ai créé un modèle de traitements assez simple me permettant de récupérer depuis n'importe quelle couche projetée en 4326 d'un projet en 4326 (points, lignes, polygones) une extraction de couche de noeuds avec ajout dans la table résultante des champs coordonnées latitude et longitude au format hexadécimal ('DD° MM.MMM' N/S/E/W'). Tout marche bien, mais le problème que je rencontre est que le symoble degré '°' s'affiche en '?' au résultat de ma table.

Le model se compose :
- d'un premier traitement pour extraire les noeuds : traitement QGIS "Convert Geometry Type"
- d'un second traitement pour ajouter le champs Latitude Hexa à la table : traitement QGIS "Field Calculator" avec création d'un nouveau champs (en chaine de caractères) en appliquant la formule : concat(to_string( floor(abs( $Y ))),'° ',(to_string(round((abs($Y)-floor(abs($Y)))*60,4))),if( $Y >0,''' N',''' S' ))
- d'un troisième traitement pour ajouter le champs longitude Hexa à la table : traitement QGIS "Field Calculator" avec création d'un nouveau champs (en chaine de caractères) en appliquant la formule : concat(to_string( floor(abs( $X ))),'° ',(to_string(round((abs($X)-floor(abs($X)))*60,4))),if( $X >0,''' E',''' W' ))

Je crois que le problème d'affichage du '°' vient du fait que le traitement se termine par la création d'une couche en shp et que le fichier dbf de la table associée encodé en ? ne lit pas ce type de symbole (encodé en UTF-8 par les traitements QGIS). En effet lorsque j'applique mes formules décrites au-dessus en mode étiquette (donc sans sortie de fichier) le symbole '°' s'affiche parfaitement.

J'ai tenté de changer le format de sortie préféré des traitements, en essayant tous les formats disponibles, mais aucun résultat, soit le problème persiste si le traitement arrive au bout (problème d'encodage), soit le format non shp selectionné ne permet pas au model de teminer car il y a des incompatibilités durant les traitements. Et cette solution , même si elle marchait, ne me convient pas, étant donné que je souhaiterait conserver le shp par défaut, qui reste le format le plus universel et le plus compatible avec les traitements de QGIS.

Je précise également que j'ai tenté d'ajouter à mon modèle un traitement final de conversion de fichier Gdal (ogr2ogr) car il permet de modifier l'encodage des caractères en option. Mais cela ne marche pas chez moi, QGIS installant mal les librairies et autres path nécessaires au bon fonctionnement de GDal,  n'étant pas développeur de formation, et ayant à répliquer ma config sur plusieurs postes, je ne souhaite pas installer GDAL via OSGEO, ou en standalone en shell...

Auriez-vous une solution à me proposer ?
Y-a t-il un symbol degré universel ? Y a t-il un traitement autre que Gdal qui permet la conversion de format d'encodage ? Autre ?
Merci pour votre aide

Hors ligne

 

#2 Thu 03 November 2016 21:29

doublecriquet
Participant occasionnel
Date d'inscription: 10 Jul 2009
Messages: 28

Re: QGIS: Prob affichage symbole '°' couche shp resultant d'un traitement

Solution touvée en poussant mes tests, et grace a cette page : http://www.geoinformations.developpemen … a2941.html

Finalement en utilisant gdal ogr2ogr de manière intermédiaire dans le model, donc sans extraire de fichier en sortie, ce module fonctionne chez moi. Donc pour ceux qui sont dans mon cas, a savoir avec un gdal "pas parfaitement installé" (tel que je l'ai decrit dans mon précédent post) il faut donc qu'il y ait un process encore apres qui genere le fichier de sortie. L'astuce pour gdal ogr2ogr decrite dans le lien est quil faut convertir une premiere fois en shp "temporaire" puis reconvertir une seconde fois a la suite avec le meme traitement gdal ogr2ogr encore en shp, mais cette fois avec l'option '-lco ENCODING=UTF-8'. Bref c'est bien decrit dans le lien, mais il est necessaire de reconvertir un premier shp temporaire generé (donc 2 traitements) pour que l'encodage soit bon et que le symbole ° apparaisse bien.
ps : désolé pour la syntaxe mais je poste cette slution depuis ma tablette smile

Dernière modification par doublecriquet (Thu 03 November 2016 21:31)

Hors ligne

 

#3 Fri 04 November 2016 09:32

PA
Membre
Lieu: Paris
Date d'inscription: 5 Sep 2005
Messages: 3259
Site web

Re: QGIS: Prob affichage symbole '°' couche shp resultant d'un traitement

Merci pour le suivi !


Pierre-André Le Ny
Modérateur QGIS, Données, Coin de l'OpenSource
Aidez l'association GeoRezo !

Hors ligne

 

Pied de page des forums

Powered by FluxBB