Pages: 1
- Sujet précédent - QGIS/Style: Niveau d'affichage en fonction d'une nomenclature - Sujet suivant
#1 Wed 03 June 2020 09:15
- remyK
- Participant occasionnel
- Date d'inscription: 19 Mar 2015
- Messages: 44
QGIS/Style: Niveau d'affichage en fonction d'une nomenclature
Bonjour à tous,
Je dispose de la base permanente des équipements de l'INSEE. Celle-ci présente tous les bâtiments d'intérêt (médecins, boulangerie, vendeur de chaussure, école etc..)
La couche est construite selon une nomenclature (fournie avec la BD) et qui est disponible dans un champs unique de la couche (sous format texte) :
Par exemple, le champs est construit de la manière suivante :
B = Commerces
--> B2 = commerce alimentaire
-----> B203 = boulangerie
-----> B204 = boucherie
ou autre exemple
C = enseignement
--> C3 = enseignement du secondaire
-----> C302 = Lycée professionnel
-----> C303 = lycée technique agricole
Mais je dispose d'un seul champs avec la nomenclature complète (B203/C302/F605/....)
Je voudrais appliquer un style de couche montrant le premier degrés de détails (afficher le symbole en fonction de la lettre A/B/C/...) et dans un second temps un autre style avec niveau de détail intermédiaire (B1/B2/B3/C1/C2/C3...).
Je cherche la bonne expression qui me permettrait de faire ça, mais comme c'est du texte et pas des nombres, je n'y arrive pas si quelqu'un a une idée je suis preneur.
Merci beaucoup par avance.
Dernière modification par remyK (Wed 03 June 2020 09:16)
Hors ligne
#2 Wed 03 June 2020 10:03
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3927
Re: QGIS/Style: Niveau d'affichage en fonction d'une nomenclature
Bonjour,
L'expression left("lechamp", nbredecaractères) comme expression de classification devrait permettre d'avoir les différents niveaux que vous souhaitez. Ou bien la fonction substr. Et peut-être le tout dans une classification basée sur des règles qu'on filtre au fur et à mesure?
Hors ligne
#3 Wed 03 June 2020 12:44
- remyK
- Participant occasionnel
- Date d'inscription: 19 Mar 2015
- Messages: 44
Re: QGIS/Style: Niveau d'affichage en fonction d'une nomenclature
Merci beaucoup Santana
Formidable, c'est exactement ce qu'il me faut. J'ai fais mes premières règles, c'est vraiment très efficace, comme outil.
Et savez-vous quelle expression permettrait de supprimer l'affichage d'une donnée dans la rédaction des règles ?
La base de donnée dispose d'un champs QUALITE_XY, définissant la qualité de la géolocalisation. Il y a 4 attributs (acceptable, bon, mauvais, non géolocalisé) et en effet les "Mauvaise" géolocalisations sont complètement à la ramasse, j'aurai aimé ajouter une règle permettant d'empêcher leur affichage. Quelle expression conviendrait ?
J'essaie des formules un peu trop typées "Excel" je pense avec des =/SI etc. Genre QUALITE_XY = "bonne" ; QUALITE_XY = "acceptable" ça ne fonctionne pas.
Hors ligne
#4 Wed 03 June 2020 12:54
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3927
Re: QGIS/Style: Niveau d'affichage en fonction d'une nomenclature
La logique reste la même, vous avez une fonction if mais dans ce cas-ci je partirais plus sur le case when, ie
Code:
CASE WHEN QUALITE_XY <> 'Mauvaise' THEN votreprécédentcodeclassificationici END
Ou vous faites une règle QUALITE_XY='Mauvaise' pour laquelle vous indiquez pas de symbole, puis vous faites un ELSE. Et vous placez vos actuelles règles sous le ELSE. Comme cela, vous vous épargnez la systématique condition de placement à vérifier
Hors ligne
#5 Wed 03 June 2020 15:30
- remyK
- Participant occasionnel
- Date d'inscription: 19 Mar 2015
- Messages: 44
Re: QGIS/Style: Niveau d'affichage en fonction d'une nomenclature
OK j'ai choisi la seconde solution j'ai donc deux règles :
1- "QUALITE_XY" = 'Mauvaise' --> Pas de Symbole
2- ELSE
----> left (TYPEQU,1)
----> left (TYPEQU,2)
----> left (TYPEQU,4)
Ensuite je ne comprends pas comment les règles s'imbriquent entre elles (par logique, je fais glisser le ELSE dans le 1 "QUALITE_XY" = 'Mauvaise') mais là je ne vois apparaître que les 'Mauvais', pourtant elle se situent après. si je ne les lies pas, tout s'affiche et si je mets "QUALITE_XY" = 'Mauvaise' sans symbole, dans le ELSE idem, je vois que les 'Mauvaise'
Qu'est ce que je fais de mal ?
Dernière modification par remyK (Wed 03 June 2020 15:31)
Hors ligne
#6 Mon 08 June 2020 13:06
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3927
Re: QGIS/Style: Niveau d'affichage en fonction d'une nomenclature
Bonjour,
Possible d'avoir un visuel de l'organisation des règles? J'ai du mal à voir ce que vous mettez derrière les "je les lie" (ou pas), "se situent après". Merci.
Hors ligne
#7 Wed 17 June 2020 12:01
- remyK
- Participant occasionnel
- Date d'inscription: 19 Mar 2015
- Messages: 44
Re: QGIS/Style: Niveau d'affichage en fonction d'une nomenclature
Bonjour
Je viens de voir que mon message précédent n'était pas parti
Donc en pj mes règles mais ici rien en s'affiche...
Hors ligne
#8 Wed 17 June 2020 17:41
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3927
Re: QGIS/Style: Niveau d'affichage en fonction d'une nomenclature
Bonjour,
Possibilité de déplier "Equipements généraux"? Car là on n'a pas encore de symbole associé aux règles, et je me demande ce qu'il y a en dessous (je m'attendais à voir des règles du genre A = B)
Pour déboguer, affichez le nombre d'entités pour chaque règle (ça vous permettra de savoir si vos expressions renvoient quelque chose (pour autant que cet outil fonctionne). Désolé, je n'ai pas QGIS sous la main pour tester et fournir quelque chose de fiable...
Hors ligne
Pages: 1
- Sujet précédent - QGIS/Style: Niveau d'affichage en fonction d'une nomenclature - Sujet suivant