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()
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())
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