Pages: 1
- Sujet précédent - QGIS: Prob affichage symbole '°' couche shp resultant d'un traitement - Sujet suivant
#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
Dernière modification par doublecriquet (Thu 03 November 2016 21:31)
Hors ligne
#3 Fri 04 November 2016 09:32
Re: QGIS: Prob affichage symbole '°' couche shp resultant d'un traitement
Merci pour le suivi !
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Prob affichage symbole '°' couche shp resultant d'un traitement - Sujet suivant