Comment afficher les étiquettes exactement autour d'un cercle dans QGIS?


10

J'ai trouvé un moyen intéressant de mappage et d'étiquetage proportionnels des symboles, je pense que cela a été fait par Adobe Illustrator mais je n'ai pas pu savoir si cela pouvait être fait dans QGIS. Ce qui m'intéresse le plus, c'est la façon dont le texte (attributs) apparaît autour des cercles. Je n'ai littéralement aucune idée de comment créer un tel étiquetage de carte thématique comme celui-ci dans QGIS.

Voici l'image:

entrez la description de l'image ici

Réponses:


5

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.

Table

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)

Filtre

Il devrait ressembler à ceci dans les propriétés:

générateur de requêtes de propriétés

Pour chacun, vous définissez différentes propriétés d'étiquetage

Sous la couche

Au dessous de

Couche supérieure

Plus haut

alors vous obtenez:

Courbée


Eh bien maintenant, je me sens idiot ...
csk

2
Ne soyez pas, nous apprenons tous tous les jours 😉 C'est tout ce que Stack Exchange propose!
gisnside

J'adore vraiment votre solution mais j'ai du mal à diviser les cercles en deux moitiés. Au début, j'avais une couche de points. J'ai créé des tampons autour d'eux, j'ai donc gagné des polygones que j'ai convertis en polylignes. Mon problème est que je ne peux pas les couper horizontalement en deux. Même le plugin "Poligon Splitter" ne fait pas ce que je veux. Pourriez-vous s'il vous plaît m'aider comment avez-vous fait cela?
Skye

Pour cet exemple, je viens de créer un cercle de base que j'ai divisé manuellement en deux. Cependant, pour un grand nombre de cercles, je suppose que vous devrez peut-être créer des lignes horizontales qui s'étendent horizontalement à travers les limites du cercle. À partir du milieu du cercle, vous devez créer deux points, un avec (rayon X + cercle, Y), un avec (cercle X-rayon, Y), puis créer une ligne entre ces deux. Ensuite, vous divisez le calque de ligne de cercle par le calque de ligne horizontale ... Ou vous pouvez simplement utiliser manuellement l'outil de fonction de fractionnement dans la barre d'outils d'édition avancée. J'irai voir si j'ai raté quelque chose.
gisnside

J'essaierai cela dès que je pourrai :)
Skye

0

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.