Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Fri 01 September 2017 14:46

Loom
Juste Inscrit !
Date d'inscription: 1 Sep 2017
Messages: 6

QGIS 2.14 / Composeur: affichage coordonnées du centre

Bonjour à toutes et à tous,

J'aimerais réaliser quelque chose qui paraît simple aux premiers abords, mais après avoir de nombreuses réflexions, n'a pu être élucidé par mon entourage et moi même.

J'aimerais sous QGIS, lorsque je réalise mes impressions, pouvoir afficher les coordonnées du centre de mon affichage. Dans le composeur d'impression sont donnés les différentes valeurs telles que xmin, xmax, ymin et ymax, et j'aimerais pouvoir les utiliser pour automatiser l'affichage du point central de l'emprise que je désire imprimer.

Si quelqu'un a une piste je suis preneur, merci par avance !

Le but étant d'afficher mes coordonnées de ce point au bas de ma carte.

Hors ligne

 

#2 Fri 01 September 2017 16:19

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS 2.14 / Composeur: affichage coordonnées du centre

Bonjour,

Voici une fonction QGIS à intégrer via l'éditeur de fonction qui te permettra de récupérer les coordonnées de ton élément carte :

Code:

from qgis.core import *
from qgis.gui import *

iface = qgis.utils.iface

@qgsfunction(args='auto', group='Custom')
def getComposerMapCoord(name, idCarte, corner, feature, parent):
    
    for composer_view in iface.activeComposers() :
            if composer_view.composerWindow().windowTitle()==name :
                myComposition = composer_view.composition()

    carte = myComposition.getComposerMapById(idCarte)
    
    ext = carte.currentMapExtent()
    
    if corner == "xmin" :    
        res = ext.xMinimum()
    elif corner == "ymin" :
        res = ext.yMinimum()
    elif corner == "xmax" :
        res = ext.xMaximum()
    elif corner == "ymax" :
        res = ext.yMaximum()
        
    return res

Code:

getComposerMapCoord('carte',0,'xmin')

ici, on récupère le xmin de la carte 0 du composeur appelé "carte"

Du coup, pour récupérer le centre :

Code:

(getComposerMapCoord('carte',0,'xmin') + getComposerMapCoord('carte',0,'xmax')) / 2

geodata au cerema et petits billets en géomatique

Hors ligne

 

#3 Fri 01 September 2017 20:09

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3799

Re: QGIS 2.14 / Composeur: affichage coordonnées du centre

Bonjour,
Dans la même veine (et toujours calé sur le xmin, va savoir pourquoi), il y a cet article https://gisunchained.wordpress.com/2014 … s-in-qgis/
Les récentes versions ont intégré une variable telle que map_extent_center qui devrait renvoyer les coordonnées voulues mais son fonctionnement ne m'a pas toujours paru bien clair. :'(

Hors ligne

 

#4 Mon 04 September 2017 08:47

Loom
Juste Inscrit !
Date d'inscription: 1 Sep 2017
Messages: 6

Re: QGIS 2.14 / Composeur: affichage coordonnées du centre

Bonjour,

@MathieuR : Super merci beaucoup, j'ai reproduit ta fonction pour ymin et ymax et j'ai donc mes coordonnées xcenter;ycenter ! Merci beaucoup !

@Santanna : J'ai essayé avec la méthode issue du lien que tu m'as donné mais je n'y suis pas parvenu. Le calage par rapport au xmin est sans doute conventionnel par rapport à l'origine d'un repère défini "en bas à gauche".

Hors ligne

 

#5 Mon 04 September 2017 09:17

Loom
Juste Inscrit !
Date d'inscription: 1 Sep 2017
Messages: 6

Re: QGIS 2.14 / Composeur: affichage coordonnées du centre

Par contre, je n'y avais pas pensé mais je pense pouvoir modifier le code pour utiliser cette fonction pour plusieurs cartes d'un même composeur car ta fonction n'est valable que pour une seule carte si j'ai bien compris !

Dernière modification par Loom (Mon 04 September 2017 09:17)

Hors ligne

 

#6 Tue 05 January 2021 15:13

agall68
Juste Inscrit !
Date d'inscription: 4 Jan 2021
Messages: 5

Re: QGIS 2.14 / Composeur: affichage coordonnées du centre

Bonjour,

Désolé de revenir sur ce post qui date un peu, mais y a-t 'il solutions pour que cette méthode fonctionne dans qgis 3.X?

Cordialement,

Hors ligne

 

Pied de page des forums

Powered by FluxBB