En bref
Vous devez diviser chaque cercle en 2 moitiés, puis les convertir en polyligne (ou tout autre moyen pour imiter les périmètres des moitiés supérieure et inférieure). L'essentiel est d'avoir à la fin une couche avec le périmètre supérieur et le périmètre inférieur.
Ensuite, vous étiquetez celui du haut avec un étiquetage de courbe avec un paramètre supérieur et étiquetez celui du bas avec un étiquetage inférieur.
Ci-dessous la procédure à suivre avec les captures d'écran
Le tableau de vos entités devrait ressembler à ceci (c'est un exemple de test, ça va être différent avec vos données). J'ai créé un champ de position et un champ d'étiquette ici.
Dans le cas où vous conservez un calque physique, vous dupliquez votre calque et définissez le filtre pour qu'il corresponde à «UP» pour une copie du calque et à «DOWN» pour l'autre (astuce: quand quelqu'un aura défini cette propriété dans les données définies ce sera plus simple)
Il devrait ressembler à ceci dans les propriétés:
Pour chacun, vous définissez différentes propriétés d'étiquetage
Sous la couche
Couche supérieure
alors vous obtenez:
Il ne semble pas y avoir de méthode intégrée ou de plugin pour rendre les étiquettes conformes à une courbe (ou à toute forme autre qu'une ligne droite). La seule façon à laquelle je peux penser pour obtenir cet effet dans QGIS est d'utiliser un cadre HTML pour chaque étiquette dans le composeur d'impression. Le HTML n'est pas mon fort, mais j'ai trouvé quelques sites qui expliquent comment faire cela (liens en bas de cet article). Cela semble assez fastidieux - probablement beaucoup plus facile de produire une carte sans étiquettes, puis de les ajouter dans un programme différent. Ou produisez les étiquettes dans un autre programme, enregistrez-les sous forme d'images et ajoutez les images dans le compositeur d'impression.
https://css-tricks.com/set-text-on-a-circle/
/programming/14990284/curved-text-using-html-css
https://www.webmasterworld.com /forum21/1250.htm
la source