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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 lun. 16 avril 2018 10:57

nichtoune
Membre
Date d'inscription: 20 juil. 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 mar. 17 avril 2018 11:23

MathieuR
Moderateur
Lieu: aix-en-provence
Date d'inscription: 16 févr. 2009
Messages: 1456

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

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |