[Qgis-developer] projection selector in standalone api

Diane Peyrot peyrotdiane at gmail.com
Thu Apr 28 04:43:15 PDT 2016


Hello everyone,

I'm developping a standalone application in pyqgis in order to visualize
and explore data in netcdf files.
I would like to have the possibility to change the projection of basemaps (
raster in .tiff and coastal outline in vector) with the
QgsGenericProjectionSelector() class but it doesn't work. I think I'm quiet
close to succeed but i miss something and I don't know what.
Please, does anyone can help me to resolve my problem?
(I use QGis 2.10 on windows)
Here is my code snippet:

self.connect(self.basemap_img,
SIGNAL("clicked()"),self.on_basemapImg_triggered)
self.connect(self.basemap_shp,
SIGNAL("clicked()"),self.on_basemapShp_triggered)

def on_basemapShp_triggered (self):
        statics_dir=str(self.homepath)+"/statics/ne_50m_land/"
        name="ne_50m_land.shp"
        print name
        ll_color=True
        print "ok new crs shapefile"
        dialog = CreateModelDialog(name, self.canvas)
        dialog.projSelector
        print "projSelector"
        print "ok shapefile"
        self.updateFileVector(statics_dir+name,ll_color)

 def on_basemapImg_triggered (self):
        statics_dir=str(self.homepath)+"/statics/NE1_HR_LC_SR/"
        fileName_tif="NE1_HR_LC_SR.tif"
        print fileName_tif
        dialog = CreateModelDialog(fileName_tif, self.canvas)
        dialog.projSelector
        print "projSelector"
        self.updatetif(statics_dir+fileName_tif)

class CreateModelDialog(QDialog):
    def __init__(self, layer, canvas):
        QDialog.__init__(self)
        self.projSelector = QgsGenericProjectionSelector()
        self.projSelector.exec_()
        self.projSelector.selectedAuthId()
        self.projSelector.selectedCrsId()
        print self.projSelector.selectedAuthId()
        print "ok projection dialog box"

def updatetif(self, fileName_tif):
        fileInfo = QFileInfo(fileName_tif)
        print fileInfo
        baseName = fileInfo.baseName()
        print baseName
        rlayer = QgsRasterLayer(fileName_tif, baseName)
        if not rlayer.isValid():
            print "Layer failed to load!"
        QgsMapLayerRegistry.instance().addMapLayers([rlayer])
        print "ok crs image"

    def updateFileVector(self,name, ll_color):

self.layer2=QgsVectorLayer(name,os.path.basename(str(name)),"ogr")
        if not self.layer2.isValid():
            print "Layer failed to load!"
        if ll_color :
            props = { 'color' : '192,192,192', 'style' : 'no', 'style' :
'solid' }
            s = QgsFillSymbolV2.createSimple(props)
            self.layer2.setRendererV2( QgsSingleSymbolRendererV2( s ) )
        QgsMapLayerRegistry.instance().addMapLayers([self.layer2])
        print "Add vector layer to registry"
        self.layers.append( QgsMapCanvasLayer(self.layer2) )
        self.canvas.setLayerSet(self.layers)
        self.canvas.setExtent(self.layer2.extent())
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20160428/01894d6b/attachment.html>


More information about the Qgis-developer mailing list