mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-27 00:03:38 -04:00
[processing] refactor ogr buffer algorithm
This commit is contained in:
parent
448961b35d
commit
8bf95fea5e
@ -75,43 +75,40 @@ class Ogr2OgrBuffer(GdalAlgorithm):
|
|||||||
|
|
||||||
def getConsoleCommands(self):
|
def getConsoleCommands(self):
|
||||||
inLayer = self.getParameterValue(self.INPUT_LAYER)
|
inLayer = self.getParameterValue(self.INPUT_LAYER)
|
||||||
ogrLayer = ogrConnectionString(inLayer)[1:-1]
|
geometry = self.getParameterValue(self.GEOMETRY)
|
||||||
layername = "'" + ogrLayerName(inLayer) + "'"
|
distance = self.getParameterValue(self.DISTANCE)
|
||||||
geometry = unicode(self.getParameterValue(self.GEOMETRY))
|
|
||||||
distance = unicode(self.getParameterValue(self.DISTANCE))
|
|
||||||
dissolveall = self.getParameterValue(self.DISSOLVEALL)
|
dissolveall = self.getParameterValue(self.DISSOLVEALL)
|
||||||
field = unicode(self.getParameterValue(self.FIELD))
|
field = self.getParameterValue(self.FIELD)
|
||||||
multi = self.getParameterValue(self.MULTI)
|
multi = self.getParameterValue(self.MULTI)
|
||||||
|
options = self.getParameterValue(self.OPTIONS)
|
||||||
|
|
||||||
|
ogrLayer = ogrConnectionString(inLayer)[1:-1]
|
||||||
|
layername = ogrLayerName(inLayer)
|
||||||
|
|
||||||
output = self.getOutputFromName(self.OUTPUT_LAYER)
|
output = self.getOutputFromName(self.OUTPUT_LAYER)
|
||||||
outFile = output.value
|
outFile = output.value
|
||||||
|
|
||||||
output = ogrConnectionString(outFile)
|
output = ogrConnectionString(outFile)
|
||||||
options = unicode(self.getParameterValue(self.OPTIONS))
|
|
||||||
|
|
||||||
arguments = []
|
arguments = []
|
||||||
arguments.append(output)
|
arguments.append(output)
|
||||||
arguments.append(ogrLayer)
|
arguments.append(ogrLayer)
|
||||||
arguments.append(ogrLayerName(inLayer))
|
arguments.append(ogrLayerName(inLayer))
|
||||||
if dissolveall or field != 'None':
|
arguments.append('-dialect')
|
||||||
arguments.append('-dialect sqlite -sql "SELECT ST_Union(ST_Buffer(')
|
arguments.append('sqlite')
|
||||||
|
arguments.append('-sql')
|
||||||
|
|
||||||
|
if dissolveall or field is not None:
|
||||||
|
sql = "SELECT ST_Union(ST_Buffer({}, {})), * FROM '{}'".format(geometry, distance, layername)
|
||||||
else:
|
else:
|
||||||
arguments.append('-dialect sqlite -sql "SELECT ST_Buffer(')
|
sql = "SELECT ST_Buffer({}, {}), * FROM '{}'".format(geometry, distance, layername)
|
||||||
arguments.append(geometry)
|
|
||||||
arguments.append(',')
|
if field is not None:
|
||||||
arguments.append(distance)
|
sql = '{} GROUP BY {}'.format(sql, field)
|
||||||
if dissolveall or field != 'None':
|
|
||||||
arguments.append(')),*')
|
arguments.append(sql)
|
||||||
else:
|
|
||||||
arguments.append('),*')
|
if field is not None and multi:
|
||||||
arguments.append('FROM')
|
|
||||||
arguments.append(layername)
|
|
||||||
if field != 'None':
|
|
||||||
arguments.append('GROUP')
|
|
||||||
arguments.append('BY')
|
|
||||||
arguments.append(field)
|
|
||||||
arguments.append('"')
|
|
||||||
if field != 'None' and multi:
|
|
||||||
arguments.append('-explodecollections')
|
arguments.append('-explodecollections')
|
||||||
|
|
||||||
if len(options) > 0:
|
if len(options) > 0:
|
||||||
|
@ -89,7 +89,7 @@ class OneSideBuffer(GdalAlgorithm):
|
|||||||
options = self.getParameterValue(self.OPTIONS)
|
options = self.getParameterValue(self.OPTIONS)
|
||||||
|
|
||||||
ogrLayer = ogrConnectionString(inLayer)[1:-1]
|
ogrLayer = ogrConnectionString(inLayer)[1:-1]
|
||||||
layername = "'" + ogrLayerName(inLayer) + "'"
|
layername = ogrLayerName(inLayer)
|
||||||
|
|
||||||
output = self.getOutputFromName(self.OUTPUT_LAYER)
|
output = self.getOutputFromName(self.OUTPUT_LAYER)
|
||||||
outFile = output.value
|
outFile = output.value
|
||||||
|
Loading…
x
Reference in New Issue
Block a user