Пример #1
0
 def export(self, path):           
     filename = utils.tempFilenameInTempFolder("exported.sqlite")     
     def _addToProject():        
         self.repo.exportsl(self.ref + ":" + path, unicode(filename))                
     self.explorer.run(_addToProject, "Add Geogit tree to QGIS project", [])
     layer = QgsVectorLayer(filename, path, "ogr")   
     QgsMapLayerRegistry.instance().addMapLayers([layer])
     self.explorer.updateQgisContent()
 def addToProject(self, explorer):           
     filename = utils.tempFilenameInTempFolder("exported.sqlite")
     if  filename != "":    
         def _addToProject():        
             self.element.repo.exportsl(str(self.element), unicode(filename))                
         explorer.run(_addToProject, "Add Geogit tree to QGIS project", [])
         layer = QgsVectorLayer(filename, self.element.path, "ogr")   
         QgsMapLayerRegistry.instance().addMapLayers([layer])
         explorer.updateQgisContent()
Пример #3
0
def exportRasterLayer(layer): 
    if (not unicode(layer.source()).lower().endswith("tif") ):        
        filename = str(layer.name())
        output = utils.tempFilenameInTempFolder(filename + ".tif")
        writer = QgsRasterFileWriter(output)    
        writer.setOutputFormat("GTiff");
        writer.writeRaster(layer.pipe(), layer.width(), layer.height(), layer.extent(), layer.crs())
        del writer
        return output
    else:
        return unicode(layer.source())
Пример #4
0
def exportVectorLayer(layer):
    '''accepts a QgsVectorLayer or a string with a filepath'''
    settings = QSettings()
    systemEncoding = settings.value( "/UI/encoding", "System" )
    if isinstance(layer, QgsMapLayer):
        filename = unicode(layer.source())  
        destFilename = unicode(layer.name()) 
    else:
        filename = unicode(layer)        
        destFilename = unicode(os.path.splitext(os.path.basename(filename))[0])
    if (not filename.lower().endswith("shp")): 
        if not isinstance(layer, QgsMapLayer):
            layer = QgsVectorLayer(filename, "layer", "ogr")                                                
            if not layer.isValid() or layer.type() != QgsMapLayer.VectorLayer:
                raise Exception ("Error reading file {} or it is not a valid vector layer file".format(filename))
        output = utils.tempFilenameInTempFolder(destFilename + ".shp")
        provider = layer.dataProvider()
        writer = QgsVectorFileWriter(output, systemEncoding, layer.pendingFields(), provider.geometryType(), layer.crs() )
        for feat in layer.getFeatures():
            writer.addFeature(feat)
        del writer
        return output
    else:
        return filename