#1 Mon 16 April 2018 10:57
- nichtoune
- Participant occasionnel
- Date d'inscription: 20 Jul 2010
- Messages: 16
QGIS: Mise à jour automatique de l'emprise porjet
Bonjour à tous,
J'ai besoin de faire en sorte qu'à l'ouverture du QGS, l'emprise du canvas se cale sur l'emprise d'une des couches du projet.
Auriez vous des pistes ?
Merci, Bien cordialement, N.
Hors ligne
#2 Tue 17 April 2018 11:23
Re: QGIS: Mise à jour automatique de l'emprise porjet
Bonjour,
Il faut lancer une fonction de calage sur l'emprise à l'ouverture du projet. Cela se fait grâce aux macros
Il faut aller dans Projet > Propriétés du projet > Macros
Et taper ce code :
Code:
from qgis.utils import iface myLayer = iface.addVectorLayer("D:/WKSP/2_APPUI/180406_JLGENOIS_POINTS/OUT/intersections_lignes.shp", "myLayer", "ogr") def setExtentFromLayer(myLayer) : cnvs = iface.mapCanvas() cnvs.setExtent(myLayer.extent()) def openProject(): nomCouche = "intersections_lignes" cnvs = iface.mapCanvas() setExtentFromLayer(myLayer) pass def saveProject(): pass def closeProject(): pass
Ici, c'est la fonction
Code:
def setExtentFromLayer(myLayer) : cnvs = iface.mapCanvas() cnvs.setExtent(myLayer.extent())
qui permet de caler l'emprise du canevas depuis l'extent de la couche. Elle se lance à l'ouverture du projet.
A noter : par défaut, les macros ne sont pas activées. On peut changer cela en allant dans
Code:
Préférences > Options > Général > Activer les macros
geodata au cerema et petits billets en géomatique
Hors ligne