def run(self): try: os.makedirs(self.folder, exist_ok=True) for i, name in enumerate(self.layers): if self.isCanceled(): return False self.setProgress(i * 100 / len(self.layers)) layer = self.layerFromName(name) if self.exportData: layerFilename = os.path.join(self.folder, layer.name() + ".gpkg") exportLayer(layer, fields, log=self) if self.exportMetadata: styleFilename = os.path.join(self.folder, layer.name() + "_style.zip") saveLayerStyleAsZippedSld(layer, styleFilename) if self.exportSymbology: metadataFilename = os.path.join( self.folder, layer.name() + "_metadata.zip") saveMetadata(layer, metadataFilename) return True except Exception as e: self.exception = traceback.format_exc() return False
def publishStyle(self, layer): styleFilename = tempFilenameInTempFolder(layer.name() + ".zip") warnings = saveLayerStyleAsZippedSld(layer, styleFilename) for w in warnings: self.logWarning(w) self.logInfo(QCoreApplication.translate("GeocatBridge", "Style for layer %s exported as zip file to %s") % (layer.name(), styleFilename)) self._publishStyle(layer.name(), styleFilename) return styleFilename
def run(self): try: os.makedirs(self.folder, exist_ok=True) for i, name in enumerate(self.layers): if self.isCanceled(): return False self.setProgress(i * 100 / len(self.layers)) layer = self.layerFromName(name) if self.exportSymbology: styleFilename = os.path.join(self.folder, layer.name() + "_style.zip") self.stepStarted.emit(name, SYMBOLOGY) saveLayerStyleAsZippedSld(layer, styleFilename) self.stepFinished.emit(name, SYMBOLOGY) else: self.stepSkipped.emit(name, SYMBOLOGY) if self.exportData: ext = ".gpkg" if layer.type( ) == layer.VectorLayer else ".tif" layerFilename = os.path.join(self.folder, layer.name() + ext) self.stepStarted.emit(name, DATA) exportLayer(layer, self.fields, log=self, force=True, path=layerFilename) self.stepFinished.emit(name, DATA) else: self.stepSkipped.emit(name, DATA) if self.exportMetadata: metadataFilename = os.path.join( self.folder, layer.name() + "_metadata.zip") self.stepStarted.emit(name, METADATA) saveMetadata(layer, metadataFilename) self.stepFinished.emit(name, METADATA) else: self.stepSkipped.emit(name, METADATA) return True except Exception as e: self.exception = traceback.format_exc() return False
def run(self): try: os.makedirs(self.folder, exist_ok=True) for i, id_ in enumerate(self.layer_ids): if self.isCanceled(): return False self.setProgress(i * 100 / len(self.layer_ids)) layer = self.getLayerById(id_) name, safe_name = lyr_utils.getLayerTitleAndName(layer) if self.export_symbology: style_filename = os.path.join(self.folder, safe_name + "_style.zip") self.stepStarted.emit(id_, SYMBOLOGY) saveLayerStyleAsZippedSld(layer, style_filename) self.stepFinished.emit(id_, SYMBOLOGY) else: self.stepSkipped.emit(id_, SYMBOLOGY) if self.export_data: ext = ".gpkg" if layer.type( ) == layer.VectorLayer else ".tif" layer_filename = os.path.join(self.folder, safe_name + ext) self.stepStarted.emit(id_, DATA) exportLayer(layer, self.field_map[id_], path=layer_filename, force=True, logger=self) self.stepFinished.emit(id_, DATA) else: self.stepSkipped.emit(id_, DATA) if self.export_metadata: metadata_filename = os.path.join( self.folder, safe_name + "_metadata.zip") self.stepStarted.emit(id_, METADATA) saveMetadata(layer, metadata_filename) self.stepFinished.emit(id_, METADATA) else: self.stepSkipped.emit(id_, METADATA) return True except Exception: self.exception = traceback.format_exc() return False
def publishStyle(self, layer): lyr_title, lyr_name = lyr_utils.getLayerTitleAndName(layer) export_layer = lyr_utils.getExportableLayer(layer, lyr_name) style_filename = tempFileInSubFolder(lyr_name + ".zip") warnings = saveLayerStyleAsZippedSld(export_layer, style_filename) for w in warnings: self.logWarning(w) self.logInfo(f"Style for layer '{layer.name()}' exported as ZIP file to '{style_filename}'") self._publishStyle(lyr_name, style_filename) self._published_layers.add(layer) return style_filename
def publishStyle(self, layer): lyr_title, lyr_name = layerUtils.getLayerTitleAndName(layer) export_layer = layerUtils.getExportableLayer(layer, lyr_name) styleFilename = tempFilenameInTempFolder(lyr_name + ".zip") warnings = saveLayerStyleAsZippedSld(export_layer, styleFilename) for w in warnings: self.logWarning(w) self.logInfo( QCoreApplication.translate( "GeoCat Bridge", f"Style for layer '{layer.name()}' exported as ZIP file to '{styleFilename}'" )) self._publishStyle(lyr_name, styleFilename) self._publishedLayers.add(layer) return styleFilename
def publishLayer(self, layer, fields=None): self.publishStyle(layer) styleFilename = tempFilenameInTempFolder(layer.name() + ".zip") warnings = saveLayerStyleAsZippedSld(layer, styleFilename) for w in warnings: self.logWarning(w) self.logInfo( QCoreApplication.translate( "GeocatBridge", "Style for layer %s exported as zip file to %s") % (layer.name(), styleFilename)) if layer.type() == layer.VectorLayer: if self.storage == self.UPLOAD_DATA: filename = exportLayer(layer, fields, log=self) self._publishVectorLayerFromFile(filename, layer.name(), layer.crs().authid(), styleFilename, layer.name()) else: try: from .servers import allServers db = allServers()[self.postgisdb] except KeyError: raise Exception( QCoreApplication.translate( "GeocatBridge", "Cannot find the selected PostGIS database")) db.importLayer(layer, fields) self._publishVectorLayerFromPostgis(db, layer.crs().authid(), layer.name(), styleFilename, layer.name()) elif layer.type() == layer.RasterLayer: filename = exportLayer(layer, fields, log=self) self._publishRasterLayer(filename, styleFilename, layer.name(), layer.name())