Exercice

Maintenant vous savez :

  • Exporter des cartes en série
  • Intersecter des couches géographiques

Et bien ajoutez donc dans le sous-titre de vos cartes la commune où se trouve le sommet sélectionné.

À vous de jouer !

Vous allez devoir utiliser la couche des IRIS (disponible en pièce jointe de cet article) et l'intersecter avec vos sommets :

[code]...
iris = QgsVectorLayer("C:/Users/Georges/Downloads/qgis/data_IRIS_2019/data_IRIS_2019/iris.shp", "IRIS", "ogr")
...
QgsProject.instance().addMapLayer(iris)
...
# Intersecter les sommets et les IRIS
peaks_iris_path = "C:/Users/Georges/Downloads/qgis/exports/peaks_iris.shp"

processing.run('qgis:intersection', {\
"INPUT": peaks,\
"OVERLAY": iris,\
"INPUT_FIELDS": ["OSM_ID", "NAME", "OTHER_TAGS"],\
"OVERLAY_FIELDS": ["CODE_IRIS", "NOM_COM"],\
"OVERLAY_FIELDS_PREFIX": "",\
"OUTPUT": peaks_iris_path})

peaks_iris = QgsVectorLayer(peaks_iris_path, "Sommets", "ogr")
QgsProject.instance().addMapLayer(peaks_iris)

# Retirer ancienne couche des sommets et celle des IRIS
QgsProject.instance().removeMapLayer(peaks)
QgsProject.instance().removeMapLayer(iris)[/code]

Puis appeler le nouveau champ disponible (NOM_COM) et modifier la chaîne formatée qui remplit le sous-titre :

[code]...
commune = feat['NOM_COM']
...
subtitle.setText("Identifiant OSM : {} - Commune : {}".format((str(id_peak)), (commune)))
...[/code]

Notez qu'au lieu de l'ancien %, nous utilisons ici une méthode de formatage plus moderne (.format()

Code complet de l'export des cartes avec les noms de commune en sous-titre et les liens aux APIs (modifiez les chemins, testez ce code de préférence dans l'éditeur Python, pas la console).