====== Moteur de rendu cartographique QgsMapRenderer ====== ===== Etape 1 ===== * Lancer QGIS * Charger la couche de polygones suivante {{:geoinf15:pk25_decoupage.zip|}} * Dans la console Python de QGIS, ouvrir l'éditeur * Y insérer le code ci-dessous * Modifier la dernière ligne selon votre système de fichiers * Sauvegarder le script * Exécuter from PyQt4.QtCore import * from PyQt4.QtGui import * aLayer = qgis.utils.iface.activeLayer() img = QImage(QSize(800,600), QImage.Format_RGB32) img.fill(QColor(255,255,255).rgb()) p = QPainter() p.begin(img) p.setRenderHint(QPainter.Antialiasing) render = QgsMapRenderer() render.setLayerSet([ aLayer.id() ]) rect = QgsRectangle(render.fullExtent()) render.setExtent(rect) render.setOutputSize(img.size(), 96) render.render(p) p.end() img.save("/tmp/render.png","png") (compréhension du "portrayal model" {{:ogo13:portrayalogc.png?linkonly|}}) ===== Etape 2 ===== * Créer un fichier singleSymbol.sld avec la description de style ci-dessous qui utilise un [[http://docs.geoserver.org/stable/en/user/styling/sld/reference/polygonsymbolizer.html|PolygonSymbolizer]] kartenblatt_region kartenblatt_region Single symbol #f1f4c7 #afb38a 0.26 bevel * Insérer au bon endroit l'instruction d'appel à la méthode loadSldStyle ci-après (en adaptant le chemin d'accès à votre fichier de style) aLayer.loadSldStyle('/path/to/singleSymbol.sld') * Sauvegarder le script * Exécuter et voyez le résultat * Modifier la description de style pour distinguer les cartes combinées des cartes standards (utiliser une règle filtrée - [[http://docs.geoserver.org/stable/en/user/styling/sld/reference/rules.html|Rule]] [[http://docs.geoserver.org/stable/en/user/styling/sld/reference/filters.html#sld-reference-filters|Filter]])