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