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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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