Skip to content

Commit 8bf95fe

Browse files
committed
[processing] refactor ogr buffer algorithm
1 parent 448961b commit 8bf95fe

File tree

2 files changed

+22
-25
lines changed

2 files changed

+22
-25
lines changed

python/plugins/processing/algs/gdal/ogr2ogrbuffer.py

+21-24
Original file line numberDiff line numberDiff line change
@@ -75,43 +75,40 @@ def defineCharacteristics(self):
7575

7676
def getConsoleCommands(self):
7777
inLayer = self.getParameterValue(self.INPUT_LAYER)
78-
ogrLayer = ogrConnectionString(inLayer)[1:-1]
79-
layername = "'" + ogrLayerName(inLayer) + "'"
80-
geometry = unicode(self.getParameterValue(self.GEOMETRY))
81-
distance = unicode(self.getParameterValue(self.DISTANCE))
78+
geometry = self.getParameterValue(self.GEOMETRY)
79+
distance = self.getParameterValue(self.DISTANCE)
8280
dissolveall = self.getParameterValue(self.DISSOLVEALL)
83-
field = unicode(self.getParameterValue(self.FIELD))
81+
field = self.getParameterValue(self.FIELD)
8482
multi = self.getParameterValue(self.MULTI)
83+
options = self.getParameterValue(self.OPTIONS)
84+
85+
ogrLayer = ogrConnectionString(inLayer)[1:-1]
86+
layername = ogrLayerName(inLayer)
8587

8688
output = self.getOutputFromName(self.OUTPUT_LAYER)
8789
outFile = output.value
8890

8991
output = ogrConnectionString(outFile)
90-
options = unicode(self.getParameterValue(self.OPTIONS))
9192

9293
arguments = []
9394
arguments.append(output)
9495
arguments.append(ogrLayer)
9596
arguments.append(ogrLayerName(inLayer))
96-
if dissolveall or field != 'None':
97-
arguments.append('-dialect sqlite -sql "SELECT ST_Union(ST_Buffer(')
98-
else:
99-
arguments.append('-dialect sqlite -sql "SELECT ST_Buffer(')
100-
arguments.append(geometry)
101-
arguments.append(',')
102-
arguments.append(distance)
103-
if dissolveall or field != 'None':
104-
arguments.append(')),*')
97+
arguments.append('-dialect')
98+
arguments.append('sqlite')
99+
arguments.append('-sql')
100+
101+
if dissolveall or field is not None:
102+
sql = "SELECT ST_Union(ST_Buffer({}, {})), * FROM '{}'".format(geometry, distance, layername)
105103
else:
106-
arguments.append('),*')
107-
arguments.append('FROM')
108-
arguments.append(layername)
109-
if field != 'None':
110-
arguments.append('GROUP')
111-
arguments.append('BY')
112-
arguments.append(field)
113-
arguments.append('"')
114-
if field != 'None' and multi:
104+
sql = "SELECT ST_Buffer({}, {}), * FROM '{}'".format(geometry, distance, layername)
105+
106+
if field is not None:
107+
sql = '{} GROUP BY {}'.format(sql, field)
108+
109+
arguments.append(sql)
110+
111+
if field is not None and multi:
115112
arguments.append('-explodecollections')
116113

117114
if len(options) > 0:

python/plugins/processing/algs/gdal/onesidebuffer.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def getConsoleCommands(self):
8989
options = self.getParameterValue(self.OPTIONS)
9090

9191
ogrLayer = ogrConnectionString(inLayer)[1:-1]
92-
layername = "'" + ogrLayerName(inLayer) + "'"
92+
layername = ogrLayerName(inLayer)
9393

9494
output = self.getOutputFromName(self.OUTPUT_LAYER)
9595
outFile = output.value

0 commit comments

Comments
 (0)