bonjour,
j'ai réussi à afficher une vue crée sur postgresql à partir de qgis en utilisant code python:
maintenant je veux afficher cette vue avec une symbologie (classes), j'ai cherché beaucoup mais c'était pas claire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 uri = QgsDataSourceURI() uri.setConnection("localhost", "5432", "stat", "postgres", "admin") uri.setDataSource("public", "view2", "the_geom", ' ',"gid") uri.uri() qgis.utils.iface.addVectorLayer(uri.uri(), "allcountries", "postgres")
exemple: j'ai tenté de le faire avec :
ça donne une erreur: "mySymbol1.setColor(myColour)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 myVectorLayer = QgsVectorLayer("polygon", "mypoly", 'ogr') myTargetField = 'code' 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)
AttributeError: 'NoneType' object has no attribute 'setColor'"
merci à votre aide ou indication.
Partager