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 sam. 03 février 2018 19:12

Coconut29
Membre
Date d'inscription: 3 févr. 2018
Messages: 4

QGIS: MaJ de l'emprise de toutes les couches d'un projet

Bonjour,

Je cherche un moyen pour mettre à jour l'emprise de toutes les couches vecteurs d'un projet (spatialite et shape).

J'ai réalisé plusieurs extraction d'une base de données PostGIS qui est à l'échelle d'une communauté de communes selon les emprises communales. J'utilise ensuite un fichier .qgs modèle réalisé avec les couches PostGIS que je décline par commune en y changeant les sources de données.
Jusque là tout va bien.

Mais malheureusement, lorsque que je consulte les SIG "communaux", les emprises des couches extraites sont erronées et toujours basées sur ce fichier modèle. C'est à dire que quand je zoom sur une couche ou un groupe de couche, je me retrouve à l'échelle de la communauté de communes et non de la commune.

Le moyen de résoudre ce problème est d'aller dans les propriétés des couches et de "mettre à jour l'emprise". Je suppose donc que cette fameuse emprise est contenue dans le fichier projet .qgs et non dans la couche elle même.

[img]https://docs.qgis.org/2.14/fr/_images/vector_general_menu.png[/img]

Quelqu'un connait-il un moyen pour mettre à jour l'emprise de toutes le couches d'un projet en une seule fois. Un script python ? Un plugin ?

Merci pour votre aide.

Hors ligne

 

#2 jeu. 08 février 2018 14:04

lejedi76
Membre
Date d'inscription: 8 août 2013
Messages: 264

Re: QGIS: MaJ de l'emprise de toutes les couches d'un projet

Bonjour,

effectivement il faut forcer la mise à jour de l'emprise.

Voici un code python qui doit faire le travail :

Code:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from qgis.core import QgsMapLayerRegistry
layers_to_update = [ layer for layer in QgsMapLayerRegistry.instance().mapLayers().values()
    if layer.type() == QgsMapLayer.VectorLayer ]
for layer in layers_to_update:
    layer.updateExtents()

Cordialement,

Dernière modification par lejedi76 (jeu. 08 février 2018 14:05)

Hors ligne

 

#3 lun. 12 février 2018 20:55

Coconut29
Membre
Date d'inscription: 3 févr. 2018
Messages: 4

Re: QGIS: MaJ de l'emprise de toutes les couches d'un projet

Merci beaucoup lejedi76 !

Ça fonctionne ; du moins tant que la session est active. Certaines nouvelles emprises calculées ne sont pas prises en compte à la réouverture du projet que j'ai pourtant enregistré avec celles-ci. Mais c'est déjà un bon début.

Dernière modification par Coconut29 (lun. 12 février 2018 20:55)

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |