Est-il possible de sélectionner une seule ligne de contour pour l'étiquetage?
J'ai de nombreuses étiquettes pour chaque ligne et je préfère ne nommer que les principales, telles que 1000 m
et1500 m
Est-il possible de sélectionner une seule ligne de contour pour l'étiquetage?
J'ai de nombreuses étiquettes pour chaque ligne et je préfère ne nommer que les principales, telles que 1000 m
et1500 m
Réponses:
Dans QGIS 2.6 (peut-être aussi dans les versions antérieures, je ne sais pas), vous pouvez le faire dans la section Propriétés de la couche, Labels
onglet, Rendering
section. À mi-chemin de la liste des options de rendu se trouve un bouton qui vous permettra d'écrire une expression qui définira la liste des fonctionnalités qui seront réellement étiquetées. Votre expression ressemblerait à quelque chose "Elevation" IN (1000, 1500)
. Voici le bouton (en jaune), celui-ci est défini pour ne nommer que les contours avec une valeur d'élévation de 32:
Une approche consisterait à charger la couche de contour et à la styliser. Ensuite, chargez à nouveau le même calque et appliquez un filtre (cliquez avec le bouton droit sur le calque et descendez dans 'Filtre ..') Utilisez une expression de filtre similaire à celle montrée dans l'image. Dans mon cas, je voulais des contours majeurs à des intervalles verticaux de 50 mètres et le champ contenant les valeurs d'élévation s'appelait "prop_value".
Lorsque le calque filtré montrant les contours principaux est chargé, appliquez des étiquettes de contour et (si nécessaire) renforcez le style de ligne comme indiqué.
L'expression du filtre:
("prop_value" % 50) = 0
sélectionnera également les contours à des intervalles verticaux de 50 mètres. Fonctionne avec les bases de données Spatialite, pas sûr des fichiers de formes.
J'utilise cette approche qui facilite l'étiquetage et l'affichage des courbes de niveau par condition.
J'utilise les "Propriétés définies par les données" de la largeur du symbole de ligne et des couleurs des courbes de niveau avec une expression (voir capture d'écran 1) par laquelle vous pouvez appliquer différentes largeurs de ligne en fonction de conditions personnalisées et une expression similaire pour l'étiquetage (voir capture d'écran 2).
Mettez simplement les valeurs nécessaires aux expressions et c'est tout.
Autrement dit, si vous souhaitez masquer des courbes de niveau autres que 500 m, vous pouvez utiliser cette expression pour les propriétés définies par la date du symbole de ligne:
CASE WHEN Elevation / 500 - floor(Elevation / 500) = 0 then
color_rgba(255,255,255,100)
else
color_rgba(255,255,255,0)
end
c'est-à-dire que pour l'étiquetage à seulement 500 m d'intervalle, utilisez cette expression pour:
CASE WHEN Elevation /500 - floor(Elevation / 500) = 0 THEN Elevation || ' m' END
Par exemple, pour appliquer une largeur de ligne différente, utilisez une expression comme celle-ci pour les propriétés définies par les données:
CASE WHEN Elevation / 100 - floor(Elevation / 100) = 0 THEN
0.25
WHEN Elevation / 50 - floor(Elevation / 50) = 0 THEN
0.15
ELSE
0.1
END
Une autre expression commode est "ELEV" LIKE '%00'
(étape 100m) ou "ELEV" LIKE '%00' OR "ELEV" LIKE '%50'
(étape 50m) ou "ELEV" LIKE '%0'
(étape 10m) etc., où "ELEV" est mon champ d'élévation de données. La deuxième option ne fonctionne que si 50 est un multiple d'intervalle (10m ou 5m ...).