[processing] don't apply additional parameter if offset curve operation is used (fix #15342)

This commit is contained in:
Alexander Bruy 2016-08-01 15:26:58 +03:00
parent 98a5527406
commit 1d2b0b4ca7

View File

@ -85,7 +85,7 @@ class Ogr2OgrOneSideBuffer(GdalAlgorithm):
inLayer = self.getParameterValue(self.INPUT_LAYER)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
layername = "'" + ogrLayerName(inLayer) + "'"
operation = self.OPERATIONLIST[self.getParameterValue(self.OPERATION)]
operation = self.getParameterValue(self.OPERATION)
geometry = unicode(self.getParameterValue(self.GEOMETRY))
distance = unicode(self.getParameterValue(self.RADIUS))
leftright = self.LEFTRIGHTLIST[self.getParameterValue(self.LEFTRIGHT)]
@ -104,12 +104,12 @@ class Ogr2OgrOneSideBuffer(GdalAlgorithm):
arguments.append(ogrLayer)
arguments.append(ogrLayerName(inLayer))
if dissolveall or field != 'None':
if operation == 'Single Side Buffer':
if operation == 0:
arguments.append('-dialect sqlite -sql "SELECT ST_Union(ST_SingleSidedBuffer(')
else:
arguments.append('-dialect sqlite -sql "SELECT ST_Union(ST_OffsetCurve(')
else:
if operation == 'Single Side Buffer':
if operation == 0:
arguments.append('-dialect sqlite -sql "SELECT ST_SingleSidedBuffer(')
else:
arguments.append('-dialect sqlite -sql "SELECT ST_OffsetCurve(')
@ -118,14 +118,26 @@ class Ogr2OgrOneSideBuffer(GdalAlgorithm):
arguments.append(distance)
if dissolveall or field != 'None':
if leftright == 'Left':
arguments.append(',0)),*')
if operation == 0:
arguments.append(',0)),*')
else:
arguments.append(')),*')
else:
arguments.append(',1)),*')
if operation == 0:
arguments.append(',1)),*')
else:
arguments.append(')),*')
else:
if leftright == 'Left':
arguments.append(',0),*')
if operation == 0:
arguments.append(',0),*')
else:
arguments.append('),*')
else:
arguments.append(',1),*')
if operation == 0:
arguments.append(',1),*')
else:
arguments.append('),*')
arguments.append('FROM')
arguments.append(layername)
if field != 'None':