Skip to content

Commit

Permalink
Merge pull request #3130 from arnaud-morvan/processing_gdal_shapeenco…
Browse files Browse the repository at this point in the history
…ding

[processing] Add SHAPE_ENCODING parameter in GDAL "to postgis" algorithms
  • Loading branch information
alexbruy committed Jun 14, 2016
2 parents 834ab1c + 5d37cc3 commit 4b7fc98
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 0 deletions.
Expand Up @@ -44,6 +44,7 @@ class Ogr2OgrTableToPostGisList(GdalAlgorithm):

DATABASE = 'DATABASE'
INPUT_LAYER = 'INPUT_LAYER'
SHAPE_ENCODING = 'SHAPE_ENCODING'
HOST = 'HOST'
PORT = 'PORT'
USER = 'USER'
Expand Down Expand Up @@ -76,6 +77,8 @@ def defineCharacteristics(self):
self.tr('Database (connection name)'), self.DB_CONNECTIONS))
self.addParameter(ParameterTable(self.INPUT_LAYER,
self.tr('Input layer')))
self.addParameter(ParameterString(self.SHAPE_ENCODING,
self.tr('Shape encoding'), "", optional=True))
self.addParameter(ParameterString(self.SCHEMA,
self.tr('Schema name'), 'public', optional=True))
self.addParameter(ParameterString(self.TABLE,
Expand Down Expand Up @@ -120,6 +123,7 @@ def getConsoleCommands(self):
password = settings.value(mySettings + '/password')
inLayer = self.getParameterValue(self.INPUT_LAYER)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
shapeEncoding = self.getParameterValue(self.SHAPE_ENCODING)
schema = unicode(self.getParameterValue(self.SCHEMA))
table = unicode(self.getParameterValue(self.TABLE))
pk = unicode(self.getParameterValue(self.PK))
Expand All @@ -140,6 +144,10 @@ def getConsoleCommands(self):
arguments = []
arguments.append('-progress')
arguments.append('--config PG_USE_COPY YES')
if len(shapeEncoding) > 0:
arguments.append('--config')
arguments.append('SHAPE_ENCODING')
arguments.append('"' + shapeEncoding + '"')
arguments.append('-f')
arguments.append('PostgreSQL')
arguments.append('PG:"host=')
Expand Down
8 changes: 8 additions & 0 deletions python/plugins/processing/algs/gdal/ogr2ogrtopostgis.py
Expand Up @@ -43,6 +43,7 @@
class Ogr2OgrToPostGis(GdalAlgorithm):

INPUT_LAYER = 'INPUT_LAYER'
SHAPE_ENCODING = 'SHAPE_ENCODING'
GTYPE = 'GTYPE'
GEOMTYPE = ['', 'NONE', 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'GEOMETRYCOLLECTION', 'MULTIPOINT', 'MULTIPOLYGON', 'MULTILINESTRING']
S_SRS = 'S_SRS'
Expand Down Expand Up @@ -81,6 +82,8 @@ def defineCharacteristics(self):
self.group, self.i18n_group = self.trAlgorithm('[OGR] Miscellaneous')
self.addParameter(ParameterVector(self.INPUT_LAYER,
self.tr('Input layer'), [ParameterVector.VECTOR_TYPE_ANY], False))
self.addParameter(ParameterString(self.SHAPE_ENCODING,
self.tr('Shape encoding'), "", optional=True))
self.addParameter(ParameterSelection(self.GTYPE,
self.tr('Output geometry type'), self.GEOMTYPE, 0))
self.addParameter(ParameterCrs(self.A_SRS,
Expand Down Expand Up @@ -153,6 +156,7 @@ def defineCharacteristics(self):
def getConsoleCommands(self):
inLayer = self.getParameterValue(self.INPUT_LAYER)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
shapeEncoding = self.getParameterValue(self.SHAPE_ENCODING)
ssrs = unicode(self.getParameterValue(self.S_SRS))
tsrs = unicode(self.getParameterValue(self.T_SRS))
asrs = unicode(self.getParameterValue(self.A_SRS))
Expand Down Expand Up @@ -192,6 +196,10 @@ def getConsoleCommands(self):
arguments = []
arguments.append('-progress')
arguments.append('--config PG_USE_COPY YES')
if len(shapeEncoding) > 0:
arguments.append('--config')
arguments.append('SHAPE_ENCODING')
arguments.append('"' + shapeEncoding + '"')
arguments.append('-f')
arguments.append('PostgreSQL')
arguments.append('PG:"host=' + host)
Expand Down
8 changes: 8 additions & 0 deletions python/plugins/processing/algs/gdal/ogr2ogrtopostgislist.py
Expand Up @@ -47,6 +47,7 @@ class Ogr2OgrToPostGisList(GdalAlgorithm):

DATABASE = 'DATABASE'
INPUT_LAYER = 'INPUT_LAYER'
SHAPE_ENCODING = 'SHAPE_ENCODING'
GTYPE = 'GTYPE'
GEOMTYPE = ['', 'NONE', 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'GEOMETRYCOLLECTION', 'MULTIPOINT', 'MULTIPOLYGON', 'MULTILINESTRING']
S_SRS = 'S_SRS'
Expand Down Expand Up @@ -93,6 +94,8 @@ def defineCharacteristics(self):
self.tr('Database (connection name)'), self.DB_CONNECTIONS))
self.addParameter(ParameterVector(self.INPUT_LAYER,
self.tr('Input layer'), [ParameterVector.VECTOR_TYPE_ANY], False))
self.addParameter(ParameterString(self.SHAPE_ENCODING,
self.tr('Shape encoding'), "", optional=True))
self.addParameter(ParameterSelection(self.GTYPE,
self.tr('Output geometry type'), self.GEOMTYPE, 0))
self.addParameter(ParameterCrs(self.A_SRS,
Expand Down Expand Up @@ -164,6 +167,7 @@ def getConsoleCommands(self):
password = settings.value(mySettings + '/password')
inLayer = self.getParameterValue(self.INPUT_LAYER)
ogrLayer = ogrConnectionString(inLayer)[1:-1]
shapeEncoding = self.getParameterValue(self.SHAPE_ENCODING)
ssrs = unicode(self.getParameterValue(self.S_SRS))
tsrs = unicode(self.getParameterValue(self.T_SRS))
asrs = unicode(self.getParameterValue(self.A_SRS))
Expand Down Expand Up @@ -198,6 +202,10 @@ def getConsoleCommands(self):
arguments = []
arguments.append('-progress')
arguments.append('--config PG_USE_COPY YES')
if len(shapeEncoding) > 0:
arguments.append('--config')
arguments.append('SHAPE_ENCODING')
arguments.append('"' + shapeEncoding + '"')
arguments.append('-f')
arguments.append('PostgreSQL')
arguments.append('PG:"host=' + host)
Expand Down

0 comments on commit 4b7fc98

Please sign in to comment.