Bonjour,
Je ne sais pas si je suis dans la bonne section. Dsl si ce n'est pas le cas.
J'avais mis en place un petit script à l'ouverture de Qgis 2.18.22 qui me permettait de lancer automatiquement l'édition d'un atlas cartographique. Ceci à fonctionner pendant pas mal d'année. Maintenant je souhaite passer sur la version 3.16.8 de qgis mais mon script ne marche plus. J'ai cette erreur :
Voici mon code :Une erreur est survenue lors de l'exécution du code suivant:
with open('W:/PARTAGE_FDCM/GEOLIS/MAJ_V3/qgis/export_atlas.py','r') as f: exec(f.read())
Traceback (most recent call last):
File "", line 1, in
File "", line 21, in
TypeError: QgsProject.read(): arguments did not match any overloaded call:
overload 1: argument 1 has unexpected type 'QFileInfo'
overload 2: argument 1 has unexpected type 'QFileInfo'
Ayant des connaissances limitées en Python je n'arrive pas à corriger mon erreur. Est ce que quelqu'un peut m'aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 import os from qgis.core import QgsProject from qgis.gui import QgsMapCanvas, QgsLayerTreeMapCanvasBridge from qgis.core.contextmanagers import qgisapp from PyQt5.QtCore import QFileInfo import time ########CONFIGURATION########### # Filtre filtreOp = 'id > 300' repertoireTravail = 'W:/PARTAGE_FDCM/GEOLIS/MAJ_3/qgis' ############################## project_path = repertoireTravail + '/generation_atlas2.qgz' canvas = QgsMapCanvas(None) # will reparent it to widget via layout # Load our project bridge = QgsLayerTreeMapCanvasBridge(QgsProject.instance().layerTreeRoot(), canvas) QgsProject.instance().read(QFileInfo(project_path)) # Load the composer composerView = qgis.utils.iface.activeComposers()[0] composition = composerView.composition() atlas = composition.atlasComposition() composition.setAtlasMode(QgsComposition.ExportAtlas) atlas.beginRender() date=time.strftime("%Y")+"_"+time.strftime("%m")+"_"+time.strftime("%d") essai=atlas.coverageLayer().name() print ("essai") MyLayer=atlas.coverageLayer() iter=MyLayer.getFeatures() for feature in iter : atlas.prepareForFeature(feature) mat=feature['matricule'] composition.exportAsPDF('W:/PARTAGE_FDCM\GEOLIS\ATLAS_MATRICULE\carte_territoire/'+(mat)+'_'+(date)+'_carte.pdf') atlas.endRender() os._exit(0)
Je vous remercie par avance.
Partager