I built my own map canvas inside a plugin in QGIS and I want to add two layers (one by one) in order to overlay the two. I have this code:
fileCI = "....\plugins\teste\test.shp"
fileInfo = QFileInfo(fileCI)
layer = QgsVectorLayer(fileCI, fileInfo.baseName(), "ogr")
if not layer.isValid():
return
if self.canvas.layerCount()==0:
# add layer to the registry
QgsMapLayerRegistry.instance().addMapLayer(layer, False)
# set extent to the extent of our layer
self.canvas.setExtent(layer.extent())
# set the map canvas layer set
self.canvas.setLayerSet([QgsMapCanvasLayer(layer)])
self.canvas.setVisible(True)
else:
layers = self.canvas.layers()
layers.insert(1,layer)
# add layer to the registry
QgsMapLayerRegistry.instance().addMapLayers(layers,False)
for i in range(0,self.canvas.layerCount()+1):
self.canvas.setLayerSet([QgsMapCanvasLayer(layers[i])])
self.canvas.setVisible(True)
for lay in layers:
lay.triggerRepaint()
But when I add the first vector file, ok, when I add the second the map canvas stay empty.
How do I do to overlay the two layers?