Comment créer une étiquette combinant différentes tailles ou types de police?

16

Je voudrais placer le numéro d'élévation d'un point dans une taille de front différente et centré sous son nom:

entrez la description de l'image ici

Est-ce possible?

(C'est mon étiquetage réel: label || '\n' || elevation)

CARTE
la source

Réponses:

12

En ignorant la taille de la police pour la minute, vous pouvez obtenir votre première option en centrant l'étiquette au-dessus du point, dans QGIS 1.9, vous avez la possibilité de centrer le texte sous la section de plusieurs lignes. Si vous avez inclus un caractère de nouvelle ligne dans votre expression, vous pouvez laisser la case 'Wrap on character' vide (ou je mets une barre oblique dans mon expression à la place du '\ n' et je le place comme caractère de bouclage - le caractère de bouclage n'apparaît pas). Cela mettra votre texte centré comme dans votre deuxième option. Pour quelque chose comme votre première option, vous pouvez définir l'option de hauteur de ligne sur 2 ou 3.

Cependant, l'étiquetage avancé QGIS n'a qu'une seule option pour la taille de la police. Donc, pour atteindre les différentes tailles de police, je pense que vous devrez ajouter votre couche une deuxième fois et définir la police d'élévation et la position à l'intérieur.

MappaGnosis
la source
1
Existe-t-il des plans actuels ou futurs pour implémenter l'utilisation de balises de police HTML pour les étiquettes QGIS, un peu comme les balises de formatage de texte ArcGIS ?
RyanKDalton-OffTheGridMaps
1
@RyanDalton hub.qgis.org/issues/4080 C'est une bonne idée, mais cela peut ralentir le rendu de l'étiquette et il peut être difficile de déterminer la taille appropriée de l'étiquette (puisque c'est basé sur QFontMetricsF maintenant), mais vous devez essayer de l'implémenter d'abord pour en être sûr. Pas de plans pour 2.0, mais pourrait être faisable pour 2.1.
dakcarto
1
Des nouvelles à ce sujet?
MAP
Est-il possible de le faire sur QGIS 3.6?
Denilson
5

Vous pouvez obtenir ce que vous voulez en utilisant l'étiquetage basé sur des règles, mais vous devez séparer les étiquettes situées dans un champ en deux champs. L'option d'étiquetage basé sur des règles vous permet d'ajouter des étiquettes de différents champs et de les personnaliser à votre guise en changeant le nom de la police, la couleur, la taille et utilisez l'offset pour les placer les unes au-dessus des autres.

Comme vous pouvez le voir dans l'exemple ci-dessous, j'ai mis les étiquettes japonaises et les étiquettes anglaises dans deux champs, puis j'ai contrôlé l'apparence de chaque étiquette comme je le souhaitais:

entrez la description de l'image ici

Pour faire ça:

  • Aller à Layer properties -> Labels
  • Sélectionner Rule-Based Labeling

entrez la description de l'image ici

  • Définissez les champs que vous souhaitez utiliser dans l'étiquetage, chacun séparément. Dans cet exemple, j'ai utilisé Name_JP et Name_EN.
  • Utilisez le style de chacun indépendamment et personnalisez chacun comme vous le souhaitez.
  • Le plus important est d'utiliser le Offsetdessous Placementpour l'une des étiquettes afin qu'elles puissent être superposées. Pour le premier champ d'étiquette, j'ai utilisé les paramètres de placement suivants:

entrez la description de l'image ici

Pour le deuxième champ d'étiquette, j'ai utilisé les paramètres suivants:

entrez la description de l'image ici

Testé sur QGIS 3.0.1, mais il peut également s'appliquer dans QGIS 2.18 car l'option d'étiquetage basé sur les règles est disponible.

ahmadhanb
la source
1

J'ai utilisé un doublon du même calque et étiqueté à la fois avec des emplacements au-dessus et au-dessous respectivement après avoir coché «Afficher toutes les étiquettes et les fonctionnalités pour tous les calques» comme attachéet cela fonctionne!

Asiku Emmanuel
la source