banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 20 December 2012 17:26

alex_g
Juste Inscrit !
Date d'inscription: 20 Dec 2012
Messages: 4

QGIS / pyqgis : syntaxe pour rafraîchir la carte

Pardon d'avance si je poste ma question dans une mauvaise rubrique mais je découvre le site et peine pour l'instant à m'y orienter.
N'hésitez pas à me ré-aiguiller au besoin. Et merci d'avance.

Voici mon problème:

J'utilise dans la console Python de Qqis la syntaxe ci-dessous, qui génère une symbologie sommaire.
Mais je ne la vois apparaître dans la carte que si je clique ensuite dans celle-ci, ou si je clique sur le bouton de rafraîchissement.

J'ai essayé toutes sortes de commandes en ligne, mais en vain.
Quelle est-elle ?

Encore merci


from PyQt4 import QtGui
from qgis.core import  (QgsVectorLayer,
                        QgsMapLayerRegistry,
                        QgsGraduatedSymbolRendererV2,
                        QgsSymbolV2,
                        QgsRendererRangeV2)
mapCan = qgis.utils.iface.mapCanvas()
lay = mapCan.layer(0)

myVectorLayer = lay
myTargetField = 'QT_1_VACHE'
myRangeList = []
myOpacity = 1
# Make our first symbol and range...
myMin = 0.0
myMax = 50.0
myLabel = 'Group 1'
myColour = QtGui.QColor('#ffee00')
mySymbol1 = QgsSymbolV2.defaultSymbol(
           myVectorLayer.geometryType())
mySymbol1.setColor(myColour)
mySymbol1.setAlpha(myOpacity)
myRange1 = QgsRendererRangeV2(
                myMin,
                myMax,
                mySymbol1,
                myLabel)
myRangeList.append(myRange1)
#now make another symbol and range...
myMin = 50.1
myMax = 100
myLabel = 'Group 2'
myColour = QtGui.QColor('#00eeff')
mySymbol2 = QgsSymbolV2.defaultSymbol(
           myVectorLayer.geometryType())
mySymbol2.setColor(myColour)
mySymbol2.setAlpha(myOpacity)
myRange2 = QgsRendererRangeV2(
                myMin,
                myMax,
                mySymbol2,
                myLabel)
myRangeList.append(myRange2)
myRenderer = QgsGraduatedSymbolRendererV2(
                '', myRangeList)
myRenderer.setMode(
        QgsGraduatedSymbolRendererV2.EqualInterval)
myRenderer.setClassAttribute(myTargetField)

myVectorLayer.setRendererV2(myRenderer)
QgsMapLayerRegistry.instance().addMapLayer(myVectorLayer)

Hors ligne

 

#2 Thu 20 December 2012 18:23

alex_g
Juste Inscrit !
Date d'inscription: 20 Dec 2012
Messages: 4

Re: QGIS / pyqgis : syntaxe pour rafraîchir la carte

mapCan.updateFullExtent()

Hors ligne

 

#3 Thu 20 December 2012 18:26

alex_g
Juste Inscrit !
Date d'inscription: 20 Dec 2012
Messages: 4

Re: QGIS / pyqgis : syntaxe pour rafraîchir la carte

Pardon !!

En fait c'est :

qgis.utils.iface.mapCanvas().updateFullExtent()

Hors ligne

 

Pied de page des forums

Powered by FluxBB