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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#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

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

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

 

Pied de page des forums

Powered by FluxBB