Skip to content

Commit 5d37cc3

Browse files
committed
Add SHAPE_ENCODING parameter in GDAL "to postgis" algorithms
1 parent e60ed05 commit 5d37cc3

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

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

+8
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class Ogr2OgrTableToPostGisList(GdalAlgorithm):
4444

4545
DATABASE = 'DATABASE'
4646
INPUT_LAYER = 'INPUT_LAYER'
47+
SHAPE_ENCODING = 'SHAPE_ENCODING'
4748
HOST = 'HOST'
4849
PORT = 'PORT'
4950
USER = 'USER'
@@ -76,6 +77,8 @@ def defineCharacteristics(self):
7677
self.tr('Database (connection name)'), self.DB_CONNECTIONS))
7778
self.addParameter(ParameterTable(self.INPUT_LAYER,
7879
self.tr('Input layer')))
80+
self.addParameter(ParameterString(self.SHAPE_ENCODING,
81+
self.tr('Shape encoding'), "", optional=True))
7982
self.addParameter(ParameterString(self.SCHEMA,
8083
self.tr('Schema name'), 'public', optional=True))
8184
self.addParameter(ParameterString(self.TABLE,
@@ -120,6 +123,7 @@ def getConsoleCommands(self):
120123
password = settings.value(mySettings + '/password')
121124
inLayer = self.getParameterValue(self.INPUT_LAYER)
122125
ogrLayer = ogrConnectionString(inLayer)[1:-1]
126+
shapeEncoding = self.getParameterValue(self.SHAPE_ENCODING)
123127
schema = unicode(self.getParameterValue(self.SCHEMA))
124128
table = unicode(self.getParameterValue(self.TABLE))
125129
pk = unicode(self.getParameterValue(self.PK))
@@ -140,6 +144,10 @@ def getConsoleCommands(self):
140144
arguments = []
141145
arguments.append('-progress')
142146
arguments.append('--config PG_USE_COPY YES')
147+
if len(shapeEncoding) > 0:
148+
arguments.append('--config')
149+
arguments.append('SHAPE_ENCODING')
150+
arguments.append('"' + shapeEncoding + '"')
143151
arguments.append('-f')
144152
arguments.append('PostgreSQL')
145153
arguments.append('PG:"host=')

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

+8
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
class Ogr2OgrToPostGis(GdalAlgorithm):
4444

4545
INPUT_LAYER = 'INPUT_LAYER'
46+
SHAPE_ENCODING = 'SHAPE_ENCODING'
4647
GTYPE = 'GTYPE'
4748
GEOMTYPE = ['', 'NONE', 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'GEOMETRYCOLLECTION', 'MULTIPOINT', 'MULTIPOLYGON', 'MULTILINESTRING']
4849
S_SRS = 'S_SRS'
@@ -81,6 +82,8 @@ def defineCharacteristics(self):
8182
self.group, self.i18n_group = self.trAlgorithm('[OGR] Miscellaneous')
8283
self.addParameter(ParameterVector(self.INPUT_LAYER,
8384
self.tr('Input layer'), [ParameterVector.VECTOR_TYPE_ANY], False))
85+
self.addParameter(ParameterString(self.SHAPE_ENCODING,
86+
self.tr('Shape encoding'), "", optional=True))
8487
self.addParameter(ParameterSelection(self.GTYPE,
8588
self.tr('Output geometry type'), self.GEOMTYPE, 0))
8689
self.addParameter(ParameterCrs(self.A_SRS,
@@ -153,6 +156,7 @@ def defineCharacteristics(self):
153156
def getConsoleCommands(self):
154157
inLayer = self.getParameterValue(self.INPUT_LAYER)
155158
ogrLayer = ogrConnectionString(inLayer)[1:-1]
159+
shapeEncoding = self.getParameterValue(self.SHAPE_ENCODING)
156160
ssrs = unicode(self.getParameterValue(self.S_SRS))
157161
tsrs = unicode(self.getParameterValue(self.T_SRS))
158162
asrs = unicode(self.getParameterValue(self.A_SRS))
@@ -192,6 +196,10 @@ def getConsoleCommands(self):
192196
arguments = []
193197
arguments.append('-progress')
194198
arguments.append('--config PG_USE_COPY YES')
199+
if len(shapeEncoding) > 0:
200+
arguments.append('--config')
201+
arguments.append('SHAPE_ENCODING')
202+
arguments.append('"' + shapeEncoding + '"')
195203
arguments.append('-f')
196204
arguments.append('PostgreSQL')
197205
arguments.append('PG:"host=' + host)

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

+8
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ class Ogr2OgrToPostGisList(GdalAlgorithm):
4747

4848
DATABASE = 'DATABASE'
4949
INPUT_LAYER = 'INPUT_LAYER'
50+
SHAPE_ENCODING = 'SHAPE_ENCODING'
5051
GTYPE = 'GTYPE'
5152
GEOMTYPE = ['', 'NONE', 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'GEOMETRYCOLLECTION', 'MULTIPOINT', 'MULTIPOLYGON', 'MULTILINESTRING']
5253
S_SRS = 'S_SRS'
@@ -93,6 +94,8 @@ def defineCharacteristics(self):
9394
self.tr('Database (connection name)'), self.DB_CONNECTIONS))
9495
self.addParameter(ParameterVector(self.INPUT_LAYER,
9596
self.tr('Input layer'), [ParameterVector.VECTOR_TYPE_ANY], False))
97+
self.addParameter(ParameterString(self.SHAPE_ENCODING,
98+
self.tr('Shape encoding'), "", optional=True))
9699
self.addParameter(ParameterSelection(self.GTYPE,
97100
self.tr('Output geometry type'), self.GEOMTYPE, 0))
98101
self.addParameter(ParameterCrs(self.A_SRS,
@@ -164,6 +167,7 @@ def getConsoleCommands(self):
164167
password = settings.value(mySettings + '/password')
165168
inLayer = self.getParameterValue(self.INPUT_LAYER)
166169
ogrLayer = ogrConnectionString(inLayer)[1:-1]
170+
shapeEncoding = self.getParameterValue(self.SHAPE_ENCODING)
167171
ssrs = unicode(self.getParameterValue(self.S_SRS))
168172
tsrs = unicode(self.getParameterValue(self.T_SRS))
169173
asrs = unicode(self.getParameterValue(self.A_SRS))
@@ -198,6 +202,10 @@ def getConsoleCommands(self):
198202
arguments = []
199203
arguments.append('-progress')
200204
arguments.append('--config PG_USE_COPY YES')
205+
if len(shapeEncoding) > 0:
206+
arguments.append('--config')
207+
arguments.append('SHAPE_ENCODING')
208+
arguments.append('"' + shapeEncoding + '"')
201209
arguments.append('-f')
202210
arguments.append('PostgreSQL')
203211
arguments.append('PG:"host=' + host)

0 commit comments

Comments
 (0)