diff --git a/python/plugins/sextante/core/GeoAlgorithm.py b/python/plugins/sextante/core/GeoAlgorithm.py index 83bb8bc249ef..4432ff2f637c 100644 --- a/python/plugins/sextante/core/GeoAlgorithm.py +++ b/python/plugins/sextante/core/GeoAlgorithm.py @@ -262,7 +262,7 @@ def resolveTemporaryOutputs(self): SextanteUtils.setTempOutput(out, self) def setOutputCRS(self): - layers = QGisLayers.getAllLayers() + layers = QGisLayers.getAllLayers() for param in self.parameters: if isinstance(param, (ParameterRaster, ParameterVector, ParameterMultipleInput)): if param.value: @@ -272,6 +272,14 @@ def setOutputCRS(self): if layer.source() == inputlayer: self.crs = layer.crs() return + if (isinstance(param, ParameterRaster) or + (isinstance(param, ParameterMultipleInput) and param.datatype == ParameterMultipleInput.TYPE_RASTER)): + p = QgsProviderRegistry.instance().provider('gdal', inputlayer) + else: + p = QgsProviderRegistry.instance().provider('ogr', inputlayer) + if p is not None: + self.crs = p.crs() + return qgis = QGisLayers.iface self.crs = qgis.mapCanvas().mapRenderer().destinationCrs()