Pages: 1
- Sujet précédent - QGIS 2.14+: Coordonnée objet carte composeur d'impression - Sujet suivant
#1 Thu 27 October 2016 15:50
- dbantoine
- Participant occasionnel
- Date d'inscription: 30 Jan 2015
- Messages: 25
QGIS 2.14+: Coordonnée objet carte composeur d'impression
Bonjour,
Je cherche une expression utilisable dans le composeur permettant de récupérer dans un objet texte ("étiquette") la coordonnée du centre de de mon objet carte.
Parmi toutes les expressions disponibles je n'en trouve aucune qui permet de renvoyer des informations de la composition.
Je suis intéressé par vos idées !
Merci,
Hors ligne
#2 Thu 27 October 2016 16:38
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS 2.14+: Coordonnée objet carte composeur d'impression
Bonjour,
j'aurais bien dit "les variables" et notamment la variable @map_extent_center mais je ne vois pas comment on y accède depuis un objet étiquette. Si vous trouvez....
Hors ligne
#3 Thu 27 October 2016 16:59
- dbantoine
- Participant occasionnel
- Date d'inscription: 30 Jan 2015
- Messages: 25
Re: QGIS 2.14+: Coordonnée objet carte composeur d'impression
Merci pour l'idée, c'est une piste mais qui ne me semble pas adaptée. En effet, cette variable n'est pas disponible dans les étiquettes du composeur.
De plus, je recherche le centre de mon objet carte dans le composeur et non de ma vue cartographique classique.
Hors ligne
#4 Thu 27 October 2016 17:53
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS 2.14+: Coordonnée objet carte composeur d'impression
De plus, je recherche le centre de mon objet carte dans le composeur et non de ma vue cartographique classique.
Comme l'indique l'aide de la fonction map_id, l'objet <map> représente tantôt le canevas de carte, tantôt l'objet carte du composeur. Et si tu appliques sur ton objet carte du composeur (dans un des nombreux "valeurs définies par des données") la formule x(@map_extent_center), tu verras que cela te renvoie bien le x du centre de cet objet carte. Donc si, cette fonction renvoie ce que tu cherches.
Le hic, et je te l'accorde, ce n'est pas rien, est qu'on ne sait pas comment le récupérer dans un objet étiquette (ni même si c'est possible).
La question est posée sur le forum utilisateur de QGIS à http://osgeo-org.1560.x6.nabble.com/Sho … 93087.html
Hors ligne
#5 Thu 27 October 2016 19:36
- dbantoine
- Participant occasionnel
- Date d'inscription: 30 Jan 2015
- Messages: 25
Re: QGIS 2.14+: Coordonnée objet carte composeur d'impression
la fonction map_id, l'objet <map> représente tantôt le canevas de carte, tantôt l'objet carte du composeur
Je n'avais pas fait attention, ce serait donc la bonne piste, à condition que la fonction soit utilisable en effet. C'est plutôt bon signe de savoir que je ne suis pas le seul à chercher cette fonction.
En attendant, si certains ont d'autres idées, je suis preneur.
Hors ligne
#6 Fri 28 October 2016 10:59
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS 2.14+: Coordonnée objet carte composeur d'impression
Bonjour,
De la discussion sur la liste de diffusion qgis-user, il semble que ce ne soit pas encore possible (sauf à écrire une fonction Python) de récupérer directement une variable d'un autre objet. Et vu les échéances, ce ne devrait pas être possible avant la 3.0
Par contre, une autre procédure Python (hors variable) y est proposée. Teste et tiens-nous au courant
Hors ligne
#7 Wed 02 November 2016 16:40
- dbantoine
- Participant occasionnel
- Date d'inscription: 30 Jan 2015
- Messages: 25
Re: QGIS 2.14+: Coordonnée objet carte composeur d'impression
Merci du retour, au moins c'est clair pour tout le monde.
La solution de la fonction Python à l'air de fonctionner mais est un peu complexe à mettre en place pour mon usage ; notamment parce que j'en ai besoin sur plusieurs postes dans l'idéal.
Je pense opter pour une bidouille en partant des fonctions disponibles avec le "Générateur d'atlas", en particulier la variable atlas_geometry.
Du style :
Code:
round(x(@atlas_geometry),2) || ' | ' || round(y(@atlas_geometry),2)
Au passage le round à 3 me donne un résultat aberrant. Exemple pour une même valeur : round(2) : "6678067.61" et round(3) : "-2147483.648".
Ayant vu ce genre de problème dans d'autres contextes que le SIG je soupçonne le stockage des valeurs en 64bits. Si certains ont une autre explication ?
Merci des idées SANTANA
Hors ligne
Pages: 1
- Sujet précédent - QGIS 2.14+: Coordonnée objet carte composeur d'impression - Sujet suivant