Page 22 sur 25
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 :
... 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)
Puis appeler le nouveau champ disponible (NOM_COM
) et modifier la chaîne formatée qui remplit le sous-titre :
... commune = feat['NOM_COM'] ... subtitle.setText("Identifiant OSM : {} - Commune : {}".format((str(id_peak)), (commune))) ...
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).