#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: 1092
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
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
Bonne journée
Hors ligne