banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.

Vous allez recevoir un message pour effectuer ce changement de mot de passe.

Merci de bien respecter les règles préconisées.

#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: 3824

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: 3824

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

SANTANNA a écrit:

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: 3824

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

 

Pied de page des forums

Powered by FluxBB