ogrConnectionString reuses existing context

This commit is contained in:
Nyall Dawson 2017-06-27 17:23:37 +10:00
parent ce8e18da10
commit ab079f9d92
16 changed files with 26 additions and 26 deletions

View File

@ -109,7 +109,7 @@ class ClipByMask(GdalAlgorithm):
mask = self.getParameterValue(self.MASK)
context = dataobjects.createContext()
maskLayer = QgsProcessingUtils.mapLayerFromString(self.getParameterValue(self.MASK), context)
ogrMask = ogrConnectionString(mask)[1:-1]
ogrMask = ogrConnectionString(mask, context)[1:-1]
noData = self.getParameterValue(self.NO_DATA)
opts = self.getParameterValue(self.OPTIONS)

View File

@ -80,12 +80,12 @@ class OffsetCurve(GdalAlgorithm):
distance = self.getParameterValue(self.RADIUS)
options = self.getParameterValue(self.OPTIONS)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
ogrLayer = ogrConnectionString(inLayer, context)[1:-1]
layername = "'" + ogrLayerName(inLayer) + "'"
output = self.getOutputFromName(self.OUTPUT_LAYER)
outFile = output.value
output = ogrConnectionString(outFile)
output = ogrConnectionString(outFile, context)
layername = ogrLayerName(inLayer)

View File

@ -124,7 +124,7 @@ class Ogr2Ogr(GdalAlgorithm):
def getConsoleCommands(self, parameters, context, feedback):
inLayer = self.getParameterValue(self.INPUT_LAYER)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
ogrLayer = ogrConnectionString(inLayer, context)[1:-1]
output = self.getOutputFromName(self.OUTPUT_LAYER)
outFile = output.value
@ -136,7 +136,7 @@ class Ogr2Ogr(GdalAlgorithm):
outFile += ext
output.value = outFile
output = ogrConnectionString(outFile)
output = ogrConnectionString(outFile, context)
options = str(self.getParameterValue(self.OPTIONS))
if outFormat == 'SQLite' and os.path.isfile(output):

View File

@ -94,13 +94,13 @@ class Ogr2OgrBuffer(GdalAlgorithm):
multi = self.getParameterValue(self.MULTI)
options = self.getParameterValue(self.OPTIONS)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
ogrLayer = ogrConnectionString(inLayer, context)[1:-1]
layername = ogrLayerName(inLayer)
output = self.getOutputFromName(self.OUTPUT_LAYER)
outFile = output.value
output = ogrConnectionString(outFile)
output = ogrConnectionString(outFile, context)
arguments = []
arguments.append(output)

View File

@ -69,14 +69,14 @@ class Ogr2OgrClip(GdalAlgorithm):
def getConsoleCommands(self, parameters, context, feedback):
inLayer = self.getParameterValue(self.INPUT_LAYER)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
ogrLayer = ogrConnectionString(inLayer, context)[1:-1]
clipLayer = self.getParameterValue(self.CLIP_LAYER)
ogrClipLayer = ogrConnectionString(clipLayer)[1:-1]
ogrClipLayer = ogrConnectionString(clipLayer, context)[1:-1]
output = self.getOutputFromName(self.OUTPUT_LAYER)
outFile = output.value
output = ogrConnectionString(outFile)
output = ogrConnectionString(outFile, context)
options = str(self.getParameterValue(self.OPTIONS))
arguments = []

View File

@ -69,7 +69,7 @@ class Ogr2OgrClipExtent(GdalAlgorithm):
def getConsoleCommands(self, parameters, context, feedback):
inLayer = self.getParameterValue(self.INPUT_LAYER)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
ogrLayer = ogrConnectionString(inLayer, context)[1:-1]
clipExtent = self.getParameterValue(self.CLIP_EXTENT)
if not clipExtent:
clipExtent = QgsProcessingUtils.combineLayerExtents([inLayer])
@ -77,7 +77,7 @@ class Ogr2OgrClipExtent(GdalAlgorithm):
output = self.getOutputFromName(self.OUTPUT_LAYER)
outFile = output.value
output = ogrConnectionString(outFile)
output = ogrConnectionString(outFile, context)
options = str(self.getParameterValue(self.OPTIONS))
arguments = []

View File

@ -103,13 +103,13 @@ class Ogr2OgrDissolve(GdalAlgorithm):
statsatt = self.getParameterValue(self.STATSATT)
options = self.getParameterValue(self.OPTIONS)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
ogrLayer = ogrConnectionString(inLayer, context)[1:-1]
layername = ogrLayerName(inLayer)
output = self.getOutputFromName(self.OUTPUT_LAYER)
outFile = output.value
output = ogrConnectionString(outFile)
output = ogrConnectionString(outFile, context)
arguments = []
arguments.append(output)

View File

@ -141,7 +141,7 @@ class Ogr2OgrTableToPostGisList(GdalAlgorithm):
uri = GeoDB(uri=uri).uri
inLayer = self.getParameterValue(self.INPUT_LAYER)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
ogrLayer = ogrConnectionString(inLayer, context)[1:-1]
shapeEncoding = self.getParameterValue(self.SHAPE_ENCODING)
schema = str(self.getParameterValue(self.SCHEMA))
table = str(self.getParameterValue(self.TABLE))

View File

@ -188,7 +188,7 @@ class Ogr2OgrToPostGis(GdalAlgorithm):
def getConsoleCommands(self, parameters, context, feedback):
inLayer = self.getParameterValue(self.INPUT_LAYER)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
ogrLayer = ogrConnectionString(inLayer, context)[1:-1]
shapeEncoding = self.getParameterValue(self.SHAPE_ENCODING)
ssrs = str(self.getParameterValue(self.S_SRS))
tsrs = str(self.getParameterValue(self.T_SRS))

View File

@ -193,7 +193,7 @@ class Ogr2OgrToPostGisList(GdalAlgorithm):
uri = GeoDB(uri=uri).uri
inLayer = self.getParameterValue(self.INPUT_LAYER)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
ogrLayer = ogrConnectionString(inLayer, context)[1:-1]
shapeEncoding = self.getParameterValue(self.SHAPE_ENCODING)
ssrs = self.getParameterValue(self.S_SRS)
tsrs = self.getParameterValue(self.T_SRS)

View File

@ -69,7 +69,7 @@ class OgrInfo(GdalAlgorithm):
if self.getParameterValue(self.SUMMARY_ONLY):
arguments.append('-so')
layer = self.getParameterValue(self.INPUT)
conn = ogrConnectionString(layer)
conn = ogrConnectionString(layer, context)
arguments.append(conn)
return arguments

View File

@ -93,7 +93,7 @@ class OgrSql(GdalAlgorithm):
arguments.append(outFile)
layer = self.getParameterValue(self.INPUT)
conn = ogrConnectionString(layer)[1:-1]
conn = ogrConnectionString(layer, context)[1:-1]
arguments.append(conn)
return ['ogr2ogr', GdalUtils.escapeAndJoin(arguments)]

View File

@ -100,12 +100,12 @@ class OneSideBuffer(GdalAlgorithm):
multi = self.getParameterValue(self.MULTI)
options = self.getParameterValue(self.OPTIONS)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
ogrLayer = ogrConnectionString(inLayer, context)[1:-1]
layername = ogrLayerName(inLayer)
output = self.getOutputFromName(self.OUTPUT_LAYER)
outFile = output.value
output = ogrConnectionString(outFile)
output = ogrConnectionString(outFile, context)
layername = ogrLayerName(inLayer)

View File

@ -113,7 +113,7 @@ class rasterize(GdalAlgorithm):
opts = self.getParameterValue(self.OPTIONS)
out = self.getOutputValue(self.OUTPUT)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
ogrLayer = ogrConnectionString(inLayer, context)[1:-1]
if noData is not None:
noData = str(noData)

View File

@ -78,8 +78,8 @@ class rasterize_over(GdalAlgorithm):
inLayer = QgsProcessingUtils.mapLayerFromString(self.getParameterValue(self.INPUT), context)
inRasterLayer = QgsProcessingUtils.mapLayerFromString(self.getParameterValue(self.INPUT_RASTER), context)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
ogrRasterLayer = ogrConnectionString(inRasterLayer)[1:-1]
ogrLayer = ogrConnectionString(inLayer, context)[1:-1]
ogrRasterLayer = ogrConnectionString(inRasterLayer, context)[1:-1]
arguments = []
arguments.append('-a')

View File

@ -247,15 +247,15 @@ def snapToPrecision(geom, precision):
return QgsPointXY(snapped.x(), snapped.y())
def ogrConnectionString(uri):
def ogrConnectionString(uri, context):
"""Generates OGR connection sting from layer source
"""
ogrstr = None
context = dataobjects.createContext()
layer = QgsProcessingUtils.mapLayerFromString(uri, context, False)
if layer is None:
return '"' + uri + '"'
provider = layer.dataProvider().name()
if provider == 'spatialite':
# dbname='/geodata/osm_ch.sqlite' table="places" (Geometry) sql=