GIS and Media fusion

"The explosive growth of the GeoWeb and geographic information has made GIS powerful media for the general public to communicate, but perhaps more importantly, GIS have also become media for constructive dialogs and interactions about social issues." - Sui & Goodchild

User Tools

Site Tools


geoinf15:qgsmaprenderer

This is an old revision of the document!


Table of Contents

QgsMapRenderer.py

Etape 1

  • Lancer QGIS
  • Charger une quelconque couche de polygones (ex. cantons de Suisse)
  • 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 *

img = QImage(QSize(800,600), QImage.Format_ARGB32_Premultiplied)
img.fill(QColor(255,255,255).rgb())
p = QPainter()
p.begin(img)
p.setRenderHint(QPainter.Antialiasing)
render = QgsMapRenderer()
aLayer = qgis.utils.iface.activeLayer()
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")

Etape 2

  • Créer un fichier singleSymbol.sld avec la description de style ci-dessous
  • 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 …
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.1.0" 
 xmlns="http://www.opengis.net/sld" 
 xmlns:se="http://www.opengis.net/se"  
 xmlns:ogc="http://www.opengis.net/ogc"  
 xmlns:xlink="http://www.w3.org/1999/xlink"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd">
  <NamedLayer>
    <se:Name>CantonsCH_region</se:Name>
    <UserStyle>
      <se:Name>CantonsCH_region</se:Name>
      <se:FeatureTypeStyle>
        <se:Rule>
          <se:Name>Single symbol</se:Name>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#f1f4c7</se:SvgParameter>
            </se:Fill>
            <se:Stroke>
              <se:SvgParameter name="stroke">#afb38a</se:SvgParameter>
              <se:SvgParameter name="stroke-width">0.26</se:SvgParameter>
              <se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter>
            </se:Stroke>
          </se:PolygonSymbolizer>
        </se:Rule>
      </se:FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

Fichier de style : test.sld

geoinf15/qgsmaprenderer.1510778923.txt.gz · Last modified: 2018/05/16 10:05 (external edit)