Index de l'article

Open layers

Open some shapes

# Main path
monCheminDeBase = r'C:\\Users\\Georges\\Downloads\\'
 
project = QgsProject.instance()
 
# 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)
 
iface.mapCanvas().refresh()

Open OSM

(Carefull to the &)

project = QgsProject.instance()
 
urlWithParams = "type=xyz&url=http://tile.openstreetmap.org/{z}/{x}/{y}.png"
osm = QgsRasterLayer(urlWithParams, "OpenStreetMap", "wms")
 
project.addMapLayer(osm)
osm.setOpacity(0.75)
 
iface.mapCanvas().refresh()

As we open OSM, which use a specific projection (3857), better to define and force the projection of the project, and the ellipsoid:

project = QgsProject.instance()
...
crs = QgsCoordinateReferenceSystem.fromEpsgId(4326)
project.setCrs(crs)
project.setEllipsoid('EPSG:4326')

Open a Geojson

monCheminDeBase = r'C:\\Users\\georg\\Downloads\\'
 
project = QgsProject.instance()
 
eau = QgsVectorLayer(monCheminDeBase + 'MyGeoJson.geojson', 'Rivières', 'ogr')
 
project.addMapLayer(eau)

Open a Geojson online

iface.addVectorLayer('https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_50m_populated_places.geojson', 'Populated places', 'ogr')

Change a layer's encoding

myLayer = QgsVectorLayer(r'C:/Users/Georges/Downloads/my layer/new_file.tab', new_file, 'ogr')
myLayer.setProviderEncoding('ISO-8859-1')

Open a CSV

csv_path = 'file:///' + monCheminDeBase + 'World Stats.csv?delimiter=;'
my_csv = QgsVectorLayer(csv_path, 'Countries', 'delimitedtext')
project.addMapLayer(my_csv)