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

Printemps des cartes 2024

#1 Fri 11 June 2021 11:52

Demonshine
Participant occasionnel
Date d'inscription: 27 May 2021
Messages: 21

QGIS: Extraire sous-partie d'une Etiquette

Bonjour,

Afin de gérer l’étiquetage d'une couche, je souhaite extraire une chaine de caractères dans une colonne : "nom". Sauf que les chaines de caractères à extraire dans cette colonne sont variables et je n'arrive donc pas à récupérer les valeurs que je veux pour tous les cas possibles.

Voici quelques valeurs présentes dans ma colonne "nom" pour illustrer mon problème :

cas 1 : - Échangeur Numéro 14 de Croix Daurade ->  récupérer seulement le chiffre : '14' (étiquette 1) puis le nom soit : 'Croix Daurade'(étiquette 2)
cas 2 : - Échangeur Numéro 10.1 d'Eurocentre -> récupérer seulement le chiffre : '10.1'(étiquette 1) puis le nom soit : 'Eurocentre' (étiquette 2)
cas 3 : - Échangeur A64-A620 -> récupérer seulement le nom : 'A64-A620' (étiquette 2)
cas 4 : - Échangeur des Demoiselles -> récupérer seulement le nom 'Demoiselles' (étiquette 2)

Il faudrait donc que je fasse deux conditions pour gérer l'affichage des étiquettes en affichant seulement le numéro (condition 1) et seulement le nom (condition 2).

Pour afficher seulement les numéros, j'ai essayé la requête :

Code:

 regexp_substr(upper("nom"),'(\\d+.)')

mais cette requête ne me prend pas en compte tous les cas.

Pour afficher seulement les noms, j'ai essayé cette requête :

Code:

 right("nom",length("nom")- strpos("nom", 'de'))

Mais sans succès car la lettre 'e' du mot "de" (ex : cas 1) s'affiche dans mon étiquette juste avant le nom. Autre soucis est que j'aimerais également gérer les cas si au lieu du mot de avant le toponyme j'ai le mot "du", "des", "de la" ou "d"...


Merci d'avance pour votre aide

Hors ligne

 

#2 Fri 11 June 2021 12:50

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: QGIS: Extraire sous-partie d'une Etiquette

Bonjour,

Avec la fonction replace et deux array:

replace("nom",array('Échangeur ',' d\'',' de ',' des ',' de la ',' du '),array('','','','','',''))

Dernière modification par michel56 (Fri 11 June 2021 13:57)


Opérateur cartographique & DAO & PHP.

Hors ligne

 

#3 Fri 11 June 2021 14:48

Demonshine
Participant occasionnel
Date d'inscription: 27 May 2021
Messages: 21

Re: QGIS: Extraire sous-partie d'une Etiquette

Bonjour,

Merci pour votre retour,  je n'avais pas pensé à cette option.

Cependant, cette fonction ne marche pas pour le cas 4. : 'Echangeur des demoiselles' où j'obtiens 'des demoiselles' dans mon étiquette. Je pense que cela vient de l'ajout de :"d\" pour que la fonction se produise après le chiffre de l'échangeur mais j'aimerais avoir les deux options. Y a t'il un moyen de mettre les deux options dans votre fonction car je ne vois pas comment faire. J'ai essayé en récrivant une seconde fois la fonction sans l'ajout de "d\" avec un opérateur "AND" mais cela ne fonctionne pas...

Il faudrait également enlever la chaine de caractères : 'Numéro' avant le chiffre. Je pense utiliser un regexp mais je ne vois pas comment "assembler" toutes ces fonctions ensemble...

Merci pour votre aide

Hors ligne

 

#4 Fri 11 June 2021 15:17

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: QGIS: Extraire sous-partie d'une Etiquette

En ajoutant Numéro dans le tableau et en supprimant les espaces avant le mot à remplacer:



Code:

replace("nom",array('Échangeur ',' d\'','de ','des ','de la ','du ','Numéro '),array('','','','','','',''))

Dernière modification par michel56 (Fri 11 June 2021 15:30)


Opérateur cartographique & DAO & PHP.

Hors ligne

 

#5 Fri 11 June 2021 16:00

Demonshine
Participant occasionnel
Date d'inscription: 27 May 2021
Messages: 21

Re: QGIS: Extraire sous-partie d'une Etiquette

Merci beaucoup, ça fonctionne !

Hors ligne

 

#6 Mon 14 June 2021 09:23

Demonshine
Participant occasionnel
Date d'inscription: 27 May 2021
Messages: 21

Re: QGIS: Extraire sous-partie d'une Etiquette

Bonjour,

J'ai une autre question, le format de mes étiquettes est difficile à gérer avec un seul formatage d'étiquettes. Savez-vous s'il est possible de séparer cette requête de sorte à avoir deux formats d'étiquettes. C'est-à-dire faire une condition d'étiquettes pour avoir d'une part juste les numéros des échangeurs et une autre étiquette avec juste les noms ?

Merci par avance,

Hors ligne

 

Pied de page des forums

Powered by FluxBB