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 Wed 21 September 2022 14:55

F_BARATHIEU
Juste Inscrit !
Lieu: Alençon
Date d'inscription: 6 Jul 2022
Messages: 6

QGIS: Utilisation de map_get en dehors du composeur

Bonjour,

Je souhaiterai savoir s'il est possible d'utiliser l'expression map_get en dehors du composeur?

Par exemple la solution proposée ici : https://gis.stackexchange.com/questions … using-qgis
est-elle adaptable pour positionner les étiquettes d'une couche sur la carte?

J'arrive bien à faire fonctionner l'expression dans le composeur, mais si je tente de l'utiliser dans une étiquette par exemple, celle-ci me renvoie Null.

Mon objectif final étant de disposer les étiquettes d'un couche sur le périmètre de mon canevas.

Ci-dessous l'expression proposée sur gis.stackexchange :

Code:

'X-Centroid: ' ||
x_max(map_get(item_variables('Map 1'),'map_extent')))
|| ' - ' ||
'Y-Centroid: ' ||
y_max(map_get(item_variables('Map 1'),'map_extent')))

D'avance merci

Hors ligne

 

#2 Wed 21 September 2022 15:17

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 994

Re: QGIS: Utilisation de map_get en dehors du composeur

Bonjour,

Vous pouvez peut-être vous inspirer de ce projet pour répondre à votre question.
https://plugins.qgis.org/geopackages/5/

Hors ligne

 

#3 Tue 27 September 2022 10:35

F_BARATHIEU
Juste Inscrit !
Lieu: Alençon
Date d'inscription: 6 Jul 2022
Messages: 6

Re: QGIS: Utilisation de map_get en dehors du composeur

Bonjour,
merci beaucoup pour cette proposition qui à l'air prometteuse , je vais regarder si ça me permet d'avancer.

Bonne journée

Hors ligne

 

#4 Fri 28 October 2022 08:29

F_BARATHIEU
Juste Inscrit !
Lieu: Alençon
Date d'inscription: 6 Jul 2022
Messages: 6

Re: QGIS: Utilisation de map_get en dehors du composeur

Bonjour,
Je reviens à mon poste après quelques test et la solution proposé par GlaDal ne convient pas à mon besoin dans la mesure où j'ai ensuite besoin d'utiliser un Atlas.
Or (si je comprend bien), dans le projet, l'utilisation qui est fait de map_extent ne prend en compte que les coordonnées de la fenêtre du canevas de carte. Et si j'utilise un Atlas, le canevas ne suit pas automatiquement l'emprise de la mise en page...

Je suis donc preneur d'autres idées pour résoudre mon problème smile

J'ai entre-temps découvert la possibilité d'afficher depuis "Vue/Décorations" l'emprise des différentes cartes des mises en pages actives ce qui correspond bien à ma recherche mais impossible de trouver comment récupérer les variables qui permettent ça =/

D'avance merci des coups de mains!

Hors ligne

 

#5 Wed 09 November 2022 09:41

F_BARATHIEU
Juste Inscrit !
Lieu: Alençon
Date d'inscription: 6 Jul 2022
Messages: 6

Re: QGIS: Utilisation de map_get en dehors du composeur

Bonjour,

Après avoir fouillé les forums anglophone, j'ai fini par trouvé cette solution pour qgis 2.X : https://gis.stackexchange.com/questions … -in-pyqgis

Étant novice en pyQgis (mais avec quelques notion de Python), il a fallut que je m'arrache un peu les cheveux pour réussir à l'adapter à la 3.X mais j'ai réussi à sortir la version ci-dessous qui répond à mon besoin :

Code:

from qgis.core import *
from qgis.gui import *
from qgis.utils import iface

@qgsfunction(args='auto', group='Custom')
def getYmin(layoutName, mapName, feature, parent):
    
    manager = QgsProject.instance().layoutManager()
    layout = manager.layoutByName(layoutName)
    layout.setReferenceMap(layout.itemById(mapName))
    mapExtent = layout.referenceMap().extent()
    
    return mapExtent

Si jamais vous voyez des moyens d'améliorer ça n'hésitez pas à me faire des retours sinon, pour moi, le sujet est clos smile

Bonne journée

Hors ligne

 

Pied de page des forums

Powered by FluxBB