====== 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]])