Pages: 1 2
- Sujet précédent - QGIS 2.0.1: Liaison d'une étiquette à son point respectif - Sujet suivant
#1 Sat 19 October 2013 19:31
- bachir40
- Juste Inscrit !
- Date d'inscription: 19 Oct 2013
- Messages: 3
QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Bonjour,
Je suis en train de faire une carte sur laquelle il y a beaucoup de points différents. Chaque point à son étiquette mais ce n'est pas vraiment clair. J'essaye donc de relier chaque étiquette à son point avec un trait ou flèche mais je n'y arrive pas... Compte-tenu de toutes les fonctions que propose Qgis 2.0.1 pour mettre en forme les étiquettes, je m'étonne de ne pas y arriver.
Je pense que c'est à la portée de n'importe quel utilisateur régulier, donc si quelqu'un pouvait me donner un petit coup de pouce...
MERCI!
Hors ligne
#2 Sun 20 October 2013 11:47
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1021
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Bonjour, je viens de regarder de mon côté mais sans succès. Dans la version 1.8, il y avait une option "générer une couche de connecteurs" (pas très pratique d'ailleurs) dans l'outil "étiquetage"... Que je ne retrouve pas dans la version 2.
Si quelqu'un connait la solution, je suis aussi preneur ! :-)
Hors ligne
#3 Sun 20 October 2013 12:26
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1021
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
. Dans la version 1.8, il y avait une option "générer une couche de connecteurs" (pas très pratique d'ailleurs) dans l'outil "étiquetage"... Que je ne retrouve pas dans la version 2.
Il s'agissait en fait d'une extension (apparemment non compatible avec la version 2.0) qui s’appelait EasyCustomLabelling
Hors ligne
#4 Sun 20 October 2013 12:32
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1021
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
J'ai plus guère de temps pour faire le test, mais à voir si c'est une solution :
[html] http://gis.stackexchange.com/questions/ … f-features [/html]
Hors ligne
#5 Mon 21 October 2013 18:16
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1021
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Je remonte le post... ! ;-)
Hors ligne
#6 Mon 21 October 2013 18:51
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Bonjour,
C'est pas très simple, mais avec l'extension MMQGIS vous pouvez faire cela.
Il faut créer un "label layer" puis vous déplacez les étiquette de cette couche comme bon vous semble.
Ensuite, pour faire le lien, il vous suffit de créer des "hub lines" toujours avec MMQGIS.
Cela vous fera donc 3 couches (la couche, la couche d’étiquettes et la couche de liaison). C'est pas des plus pratique, mais ça marche, je n'ai pas trouver d'autres solutions dans Qgis 2.0
Dernière modification par Dof (Mon 21 October 2013 18:51)
Hors ligne
#7 Mon 21 October 2013 21:01
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1021
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Cela vous fera donc 3 couches (la couche, la couche d’étiquettes et la couche de liaison). C'est pas des plus pratique, mais ça marche, je n'ai pas trouver d'autres solutions dans Qgis 2.0
En effet, ce n'est pas très pratique, mais comme vous le dites, ca fonctionne. Et dans un premier temps, je crois que je ferai avec !
Merci !!
Hors ligne
#8 Tue 29 October 2013 17:34
- Julien34
- Participant actif
- Lieu: Lille
- Date d'inscription: 19 Sep 2007
- Messages: 112
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Salut à tous,
Je profite de mon passage sur cette page pour embrayer sur une autre question relative au déplacement d'étiquettes sur QGIS2.0.1.
Est-il possible, selon vous, de déplacer une étiquette indépendamment de son entité directement dans le composeur de mise en page, et non dans l'espace de travail ?
Merci pour votre réponse.
Merci aussi à l'équipe de GeoRezo se s'occuper de ce forum, y a du boulot et du temps passé.
Hors ligne
#9 Wed 30 October 2013 11:25
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3883
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Bonjour,
A ma connaissance, non. le composeur est une interface de visualisation plus ou moins fidèle (échelle et cadrage obligent) de ce que tu as pu préparer dans l'espace de travail. Ce n'est donc que là-bas que tu peux faire des modifs de ce genre.
Hors ligne
#10 Sat 09 July 2016 14:40
- mathmaroc
- Participant actif
- Date d'inscription: 20 Mar 2013
- Messages: 103
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Bonjour,
Je suis à la recherche d'une solution pour relier par un connecteur (flèche ou simple trait...) mes étiquettes à des cercles qui parfois se superposent. J'ai essayé avec le plugin Easy Custom Labelling mais le résultat est décevant (voir en pj). Au passage, si quelqu'un pouvait m'expliquer comment générer ces connecteurs avec Easy Custom Labelling, ce serait sympa car j'ai pas mal bidouillé pour y arriver.
En vous remerciant par avance pour votre réponse éventuelle,
Mathmaroc
Hors ligne
#11 Mon 11 July 2016 09:02
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 256
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Bonjour,
Sur QGIS 2.14, il existe un générateur de géométrie (dans les styles).
A partir du moment où tes étiquettes sont gérées par des coordonnées, il est possible de générer dans le style une ligne reliant le centre de tes cercles à l'étiquette correspondante avec une expression du genre:
Code:
make_line(make_point("tx","ty"),make_point($x,$y))
(code pour une couche de point avec deux champs "tx" et "ty" contenant les coordonnées des étiquettes, $x et $y étant les coordonnées du point)
En espérant que ça aide.
Hors ligne
#12 Mon 11 July 2016 14:42
- mathmaroc
- Participant actif
- Date d'inscription: 20 Mar 2013
- Messages: 103
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Bonjour,
Merci pour votre réponse, j'ai essayé votre code avec QGIS 2.14, mais je reçois ce message d'erreur : "Une erreur a été rencontrée lors de l'exécution de la requête.
Le fournisseur de données renvoie :
OGR [3] erreur 1: Undefined function 'make_point' used."
Je dois certainement faire une erreur de manipulation.
J'ai essayé aussi votre code dans les paramètres d'étiquetage de la couche mais cela ne donne aucun résultat.
Pour plus de clarté, je mets en pj mon fichier.dbf
Encore merci pour votre aide.
Mathmaroc
Hors ligne
#14 Mon 11 July 2016 15:43
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 256
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Il te faut faire un style défini par un ensemble de règle.
A partir de la définir 2 règles:
- une régle sans filtre qui donne la symbologie de tes points (des cercles proportionnels vu ton image) .
- une deuxième régle de type "générateur de géométrie" sous forme de ligne avec pour expression le code cité plus haut (remplacer "tx" et "ty" par "X"et "Y" car dans ta table ce sont ces colonnes qui semblent contenir les coordonnées des étiquettes (je me trompe peut être??).
Hors ligne
#15 Mon 11 July 2016 16:23
- mathmaroc
- Participant actif
- Date d'inscription: 20 Mar 2013
- Messages: 103
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
1. Oui dans ma table ce sont bien les colonnes "X" et "Y" qui contiennent les coordonnées des étiquettes. Par contre mes cercles proportionnels sont générés automatiquement avec l'Assistant Taille : coalesce(scale_exp("TEUs", 1.196, 35.2, 1, 15, 0.57), 0)
2. Il faut aller dans propriétés de la couche > style > Ensemble de règles...et ensuite ??
Désolé pour ces questions de néophyte.
Hors ligne
#16 Mon 11 July 2016 16:43
- mathmaroc
- Participant actif
- Date d'inscription: 20 Mar 2013
- Messages: 103
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
En gros j'arrive à ça (voir en pj) mais je n'ai toujours pas de ligne.
Hors ligne
#18 Mon 11 July 2016 16:50
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 256
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Ensuite ajouter les deux règles décrites dans le message précédent avec le symbole PLUS en bas de la fenêtre.
la première aura les mêmes caractéristiques que ton style actuel.
la deuxième ne présentera que les lignes reliant tes points a tes étiquettes. Dans le filtre de cette règle il faudrait mettre quelque chose du genre "X" is not null pour ne générer des lignes que pour les points qui ont des coordonnées associées à l'étiquette.
Explique où tu bloques si tu rencontres des difficultés, il n'y a pas de questions de néophyte!
Hors ligne
#19 Mon 11 July 2016 17:22
- mathmaroc
- Participant actif
- Date d'inscription: 20 Mar 2013
- Messages: 103
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
J'ai (je crois suivi vos consignes) :
1. Pour la première règle :
coalesce(scale_exp("TEUs", 1.196, 35.2, 1, 15, 0.57), 0)
2. Pour la deuxième règle :
make_line(make_point("X","Y"),make_point($x,$y))
puis filtre : "X" is not null
Mais tjrs pas de résultat concernant les lignes (voir en pj). Est-ce que cela a un lien avec ($x,$y) car je n'ai pas de colonnes dans ma table qui correspondent à ces ($x,$y). Les colonnes pour les coordonnées de mes points sont : lat et long.
Hors ligne
#20 Mon 11 July 2016 17:38
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 256
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
1/Le générateur de géométrie doit être en ligne/polyligne
2/Je ne sais pas où tu as rentré ton style d'assistant de taille mais ça à l'air d'être ok dans le canevas de carte je crois.
3/ Est ce que tu peux faire des captures d'écran du parametrage de tes deux règles??
Hors ligne
#22 Mon 11 July 2016 18:06
- mathmaroc
- Participant actif
- Date d'inscription: 20 Mar 2013
- Messages: 103
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Voilà ce que ça donne en changeant le générateur de géométrie en ligne/polyligne (voir en pj).
Hors ligne
#23 Mon 11 July 2016 18:12
- mathmaroc
- Participant actif
- Date d'inscription: 20 Mar 2013
- Messages: 103
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Autre capture (en pj). Cela pourra peut-être vous aider à comprendre mon erreur ???
Hors ligne
#24 Tue 12 July 2016 08:46
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 256
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Je vois déjà le "ty" qui n'a pas été remplacé par "Y" dans l'expression.
Ensuite il faudrait une capture d'écran de l'a fenetre que tu as lorsque tu double clique sur le symbole de la règle et que tu paramètre le générateur de géometrie
Hors ligne
#25 Tue 12 July 2016 12:18
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
J'ai (je crois suivi vos consignes) :
1. Pour la première règle :
coalesce(scale_exp("TEUs", 1.196, 35.2, 1, 15, 0.57), 0)
2. Pour la deuxième règle :
make_line(make_point("X","Y"),make_point($x,$y))
puis filtre : "X" is not null
Mais tjrs pas de résultat concernant les lignes (voir en pj). Est-ce que cela a un lien avec ($x,$y) car je n'ai pas de colonnes dans ma table qui correspondent à ces ($x,$y). Les colonnes pour les coordonnées de mes points sont : lat et long.
Bonjour,
un peu plus simple pour éviter la règle de style:
Code:
CASE WHEN "LblX" is null then NULL ELSE make_line( point_n( $geometry, 1) , make_point( "LblX" , "LblY" )) END
On a de quoi proposer une version simplifiée et plus efficace de EasyCustomLabeling avec ce générateur de géométries
Hors ligne
#26 Tue 12 July 2016 13:26
- mathmaroc
- Participant actif
- Date d'inscription: 20 Mar 2013
- Messages: 103
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Bonjour YOLecomte,
Voici une nouvelle capture d'écran. Je ne sais pas si c'est bien cela que vous voulez. Comme vous pouvez le constater je suis dans "Propriétés" > "Style" >"Ensemble de règles".
Je remarque également que "générateur de géométrie" > "Polylignes/multi-Polylignes" ne produit aucune ligne ???
Autre précision, quand j'essaie de passer par "paramètres d'étiquetage" > "Étiquetage basée sur des règles" QGIS 2.14 plante aussitôt.
Bonjour haubourg,
J'ai aussi essayé votre solution mais sans résultat.
Au fait où dois-je insérer votre code ? Dans la couche d'étiquetage ? Sachant que j'ai déjà précisé : CASE WHEN "TEUs" >= 6.5 THEN PORT END
Mais même en l'enlevant et en la remplaçant par votre code, cela ne génère pas de connecteurs.
En tous cas, un grand merci à vous deux pour votre aide et votre patience.
Mathmaroc
Hors ligne
#27 Tue 12 July 2016 13:49
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 256
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Salut Mathmaroc,
Est ce que tu peux m'envoyer les données que je regarde ce qui cloche? (le .shp, .shx, .dbf,...)
A priori ce que tu fais est correct, mais il doit y avoir une subtilité qui nous échappe!
Merci
Hors ligne
#28 Tue 12 July 2016 14:09
- mathmaroc
- Participant actif
- Date d'inscription: 20 Mar 2013
- Messages: 103
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Je vous envoie le fichier .(shp, .shx, .dbf,...) correspondant.
En espérant que vous trouverez mon erreur.
Hors ligne
#29 Tue 12 July 2016 14:27
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 256
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Perso je n'ai aucun souci!
Ci joint un fichier .qml a placer dans le même répertoire que les données de ta couche.
Il donnera le style désiré à la couche.
Tu n'aura plus qu'a paramétrer le rendu de tes points (règle 'Ports')
Hors ligne
#30 Tue 12 July 2016 14:48
- mathmaroc
- Participant actif
- Date d'inscription: 20 Mar 2013
- Messages: 103
Re: QGIS 2.0.1: Liaison d'une étiquette à son point respectif
Super !! ça marche parfaitement (voir en pj) mais je ne comprends toujours pas pourquoi votre code ne fonctionne pas sur ma version de QGIS 2.14.
Au fait, pourquoi votre code indique-t-il simplement "ligne d'étiquette" au lieu de "make_line(make_point("X","Y"),make_point($x,$y))" ??
Encore un grand merci pour votre aide précieuse.
Mathmaroc
Hors ligne
Pages: 1 2
- Sujet précédent - QGIS 2.0.1: Liaison d'une étiquette à son point respectif - Sujet suivant