Import de couches
Nous allons maintenant travailler à partir d'un nouveau projet QGIS vierge, et importer nos couches, et tout le bastring nécessaire, directement en Python ! Yep, on est comme ça ici.
(Attention au &)
... # Main path monCheminDeBase = r'C:\\Users\\Georges\\Downloads\\' project = QgsProject.instance() # For OSM urlWithParams = "type=xyz&url=http://tile.openstreetmap.org/{z}/{x}/{y}.png" osm = QgsRasterLayer(urlWithParams, "OpenStreetMap", "wms") # Path of layers peaks = QgsVectorLayer(monCheminDeBase + 'peaks_selection/peaks_selection.shp', 'Sommets', 'ogr') glaciers = QgsVectorLayer(monCheminDeBase + 'glaciers/glaciers.shp', 'Glaciers', 'ogr') eau = QgsVectorLayer(monCheminDeBase + 'eau/eau.shp', 'Fleuves', 'ogr') troncons_routes = QgsVectorLayer(monCheminDeBase + 'troncons_routes/troncons_routes.shp', 'Grandes routes', 'ogr') iris = QgsVectorLayer(monCheminDeBase + 'iris/iris.shp', 'IRIS', 'ogr') # Open layers project.addMapLayer(peaks) project.addMapLayer(glaciers) project.addMapLayer(eau) project.addMapLayer(troncons_routes) project.addMapLayer(iris) project.addMapLayer(osm) osm.setOpacity(0.75) iface.mapCanvas().refresh() ...
Attention : puisque nous ouvrons OSM, qui utilise une projection Pseudo-Mercator (3857), alors en fonction des réglages de notre QGIS (projection à la volée) et des projections des autres couches utilisées (ici 2154, RGF 93, pour nos glaciers et fleuves, et 4326, WGS 84, pour les sommets), et de leur ordre d'ouverture, et des éventuelles instructions de rafraîchissement du canvas, alors on pourrait observer des bugs. EN particulier lors de la 1ère ouverture de QGIS, à la 1ère exécution du code et sur la 1ère carte.
Nous allons donc définir et forcer la projection et l'ellipsoïde de notre projet :
project = QgsProject.instance() ... crs = QgsCoordinateReferenceSystem.fromEpsgId(4326) project.setCrs(crs) project.setEllipsoid('EPSG:4326')