03.08.2016 Views

QGIS-2.6-PyQGISDeveloperCookbook-fr

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Py<strong>QGIS</strong> developer cookbook, Version <strong>2.6</strong><br />

Par défaut, le canevas de carte a un arrière-plan noir et n’utilise pas l’anticrénelage. Pour afficher un arrière-plan<br />

blanc et activer l’anticrénelage pour un rendu plus lisse :<br />

canvas.setCanvasColor(Qt.white)<br />

canvas.enableAntiAliasing(True)<br />

(Au cas où vous vous poseriez la question, Qt vient du module PyQt4.QtCore et Qt.white est une des<br />

instances prédéfinies de QColor.)<br />

Maintenant nous pouvons ajouter des couches cartographiques. Nous allons ouvrir d’abord une couche et l’ajouter<br />

au registre des couches de la carte. Ensuite, nous paramétrerons l’emprise de la carte et nous affecterons la liste<br />

des couches à destination du canevas :<br />

layer = QgsVectorLayer(path, name, provider)<br />

if not layer.isValid():<br />

raise IOError, "Failed to open the layer"<br />

# add layer to the registry<br />

QgsMapLayerRegistry.instance().addMapLayer(layer)<br />

# set extent to the extent of our layer<br />

canvas.setExtent(layer.extent())<br />

# set the map canvas layer set<br />

canvas.setLayerSet( [ QgsMapCanvasLayer(layer) ] )<br />

Après exécution de ces commandes, le canevas de carte devrait afficher la couche chargée.<br />

7.2 Utiliser les outils cartographiques avec le canevas<br />

L’exemple qui suit construit une fenêtre contenant un canevas de carte et des outils cartographiques basiques for<br />

se déplacer dans la carte et zoomer. Les actions sont créées pour l’activation de chaque outil : le déplacement<br />

est réalisé avec la classe QgsMapToolPan, le zoom avec une paire d’objets de la classe QgsMapToolZoom.<br />

Les actions sont paramétrées pour pouvoir être cochées et sont assignées ensuite aux outils pour gérer automatiquement<br />

l’état activé/désactivé des actions. Lorsqu’un outil cartographique est activé, son action est paramétrée<br />

comme sélectionnée et l’action du précédent outil cartographique est déselectionnée. Les outils cartographiques<br />

sont activés par la méthode setMapTool() method.<br />

<strong>fr</strong>om qgis.gui import *<br />

<strong>fr</strong>om PyQt4.QtGui import QAction, QMainWindow<br />

<strong>fr</strong>om PyQt4.QtCore import SIGNAL, Qt, QString<br />

class MyWnd(QMainWindow):<br />

def __init__(self, layer):<br />

QMainWindow.__init__(self)<br />

self.canvas = QgsMapCanvas()<br />

self.canvas.setCanvasColor(Qt.white)<br />

self.canvas.setExtent(layer.extent())<br />

self.canvas.setLayerSet( [ QgsMapCanvasLayer(layer) ] )<br />

self.setCentralWidget(self.canvas)<br />

actionZoomIn = QAction(QString("Zoom in"), self)<br />

actionZoomOut = QAction(QString("Zoom out"), self)<br />

actionPan = QAction(QString("Pan"), self)<br />

actionZoomIn.setCheckable(True)<br />

actionZoomOut.setCheckable(True)<br />

actionPan.setCheckable(True)<br />

34 Chapitre 7. Utiliser le Canevas de carte

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!