#1 Tue 14 March 2017 09:51
- Vero
- Participant actif
- Lieu: Echirolles
- Date d'inscription: 6 Sep 2005
- Messages: 50
QGIS 2.18: Etiquettes liaison vers l'objet concerné
Bonjour à tous,
Ce sujet a été plusieurs fois abordé mais dans des versions antérieures de QGIS. Les évolutions du produit me laisse à penser, après plusieurs recherches, que je touche au but mais quelques réglages doivent me manquer pour que cela fonctionne.
Je cherche donc à aboutir une liaison entre mon étiquette et l'objet concerné.
J'ai une couche de polygones avec notamment 2 champs dédiés au stockage des coordonnées pour les étiquettes. Les étiquettes ont été positionnées à l'endroit souhaité.
Dans le paramétrage des styles (en v.2.18) j'ai donc
* une couche de remplissage simple pour mes polygones
* un générateur de géométrie avec l'expression suivante : make_line(make_point("etiq_x_30000","etiq_y_30000"),make_point( point_on_surface( geom))) dans l'idée de créer une ligne entre les coordonnées de mon étiquette et le barycentre de mes polygones
Le générateur de géométrie est paramétré sur une ligne basique.
Malheureusement à l'écran j'obtiens tout sauf les lignes. C'est une première pour moi, l'usage du générateur de géométrie
Merci par avance des conseils et info à venir,
Au plaisir,
Véro
Hors ligne
#2 Tue 14 March 2017 10:15
- Romvallah
- Participant actif
- Lieu: Troarn
- Date d'inscription: 30 Mar 2012
- Messages: 146
Re: QGIS 2.18: Etiquettes liaison vers l'objet concerné
La ligne entre l'étiquette et l'objet se génère seulement si les coordonnées X ou Y de l'étiquette ont changé. Avez-vous pensé à attribuer les champs X Et Y à l'étiquette dans la rubrique emplacement?
Hors ligne
#3 Tue 14 March 2017 10:33
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3928
Re: QGIS 2.18: Etiquettes liaison vers l'objet concerné
Bonjour,
Code:
make_line(make_point("etiq_x_30000","etiq_y_30000"),make_point( point_on_surface( geom)))
Le make_point prend des coordonnées comme paramètres donc je ne suis pas sûr que make_point( point_on_surface( geom)) renvoie quelque chose de digeste pour la formule. Le point_on_surface étant déjà un point, essayez donc sans le make_point. Et si cela ne marche pas, essayez de le convertir avec geom_to_wkt genre (non testé - et soit dit en passant, $geometry plutôt que geom, je pense)
Code:
make_line(make_point("etiq_x_30000","etiq_y_30000"), point_on_surface( $geometry))
Modif (suite au retour de Véro): Il semble que le geom_to_wkt ne soit pas nécessaire
Dernière modification par SANTANNA (Tue 14 March 2017 12:14)
Hors ligne
#4 Tue 14 March 2017 11:46
- Vero
- Participant actif
- Lieu: Echirolles
- Date d'inscription: 6 Sep 2005
- Messages: 50
Re: QGIS 2.18: Etiquettes liaison vers l'objet concerné
Oui, les 2 coordonnées sont bien remplies avec mes 2 champs
et je suis allée vérifier que dans le tableau les coordonnées apparaissaient bien.
Tout semble ok de ce côté là.
Hors ligne
#5 Tue 14 March 2017 11:52
- Vero
- Participant actif
- Lieu: Echirolles
- Date d'inscription: 6 Sep 2005
- Messages: 50
Re: QGIS 2.18: Etiquettes liaison vers l'objet concerné
Malheureusement, ces nouvelles tentatives ne fonctionnent pas.
Toujours pas de trait à l'horizon
Je me disais qu'il faudrait que je teste quelque chose de plus simple pour voir si cette fonctionnalité donne des résultats... je ne sais pas.
Hors ligne
#6 Tue 14 March 2017 11:53
- chanteclair
- Participant assidu
- Lieu: Pau
- Date d'inscription: 3 Jan 2007
- Messages: 725
Re: QGIS 2.18: Etiquettes liaison vers l'objet concerné
Bonjour,
Pourquoi ne pas utiliser le plugin EasyCustomLabeling couplé à MemoryLayerSaver (pour ne pas perdre la mise en forme une fois le projet fermé) ?
Cordialement.
Hors ligne
#7 Tue 14 March 2017 11:54
- Vero
- Participant actif
- Lieu: Echirolles
- Date d'inscription: 6 Sep 2005
- Messages: 50
Re: QGIS 2.18: Etiquettes liaison vers l'objet concerné
Je viens de poursuivre mes tests en tout supprimant et en sélectionnant les éléments dans les listes déroulantes sur le côté en lieu et place de la frappe manuelle... eureka cela fonctionne.
Voici la ligne de code à utiliser :
make_line (
make_point ("etiq_x_30000","etiq_y_30000"),point_on_surface($geometry)
)
Un très merci pour vos éléments qui m'ont permis d'aboutir.
Au plaisir, Véronique
Hors ligne
#8 Tue 14 March 2017 15:03
- Vero
- Participant actif
- Lieu: Echirolles
- Date d'inscription: 6 Sep 2005
- Messages: 50
Re: QGIS 2.18: Etiquettes liaison vers l'objet concerné
Effectivement je n'y avais pas pensé.
Je garde en mémoire pour tester pour une prochaine fois.
Plusieurs cordes à son arc c'est toujours une bonne idée !
Merci
Hors ligne