aboutsummaryrefslogtreecommitdiffstats
path: root/import_source.py
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2025-08-14 18:35:06 +0200
committerGuilhem Moulin <guilhem@fripost.org>2025-08-14 18:37:14 +0200
commitd62196c41e7667106cd21603bb48acc694029669 (patch)
tree72d028ab90d66d95136facb79222831ec9fd8620 /import_source.py
parent7d0dafa2d6c41e594217b784e19c0e463c062bce (diff)
webmap-import: Warn when the output geometry column is nullable.
Diffstat (limited to 'import_source.py')
-rw-r--r--import_source.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/import_source.py b/import_source.py
index f40cd38..52dba60 100644
--- a/import_source.py
+++ b/import_source.py
@@ -263,13 +263,25 @@ def validateOutputLayer(lyr : ogr.Layer,
if n != 1:
logging.warning('Output layer "%s" has %d != 1 geometry fields', lyr.GetName(), n)
- geom_type1 = lyr.GetGeomType()
- geom_type2 = options['geometry-type']
- if geom_type1 != geom_type2:
+ iGeomField = 0
+ geomField = layerDefn.GetGeomFieldDefn(iGeomField)
+ geomType = geomField.GetType()
+ logging.debug('Geometry column #%d: name="%s\", type="%s", srs=%s, nullable=%s',
+ iGeomField, geomField.GetName(),
+ ogr.GeometryTypeToName(geomType),
+ '-' if geomField.GetSpatialRef() is None
+ else '"' + geomField.GetSpatialRef().GetName() + '"',
+ bool(geomField.IsNullable()))
+ if geomField.IsNullable():
+ logging.warning('Geometry column #%d "%s" of output layer "%s" is nullable',
+ iGeomField, geomField.GetName(), lyr.GetName())
+
+ geomType2 = options['geometry-type']
+ if geomType != geomType2:
logging.warning('Output layer "%s" has geometry type #%d (%s), expected #%d (%s)',
lyr.GetName(),
- geom_type1, ogr.GeometryTypeToName(geom_type1),
- geom_type2, ogr.GeometryTypeToName(geom_type2))
+ geomType, ogr.GeometryTypeToName(geomType),
+ geomType2, ogr.GeometryTypeToName(geomType2))
ok = False
fields = options.get('fields', None)