diff options
author | Guilhem Moulin <guilhem@fripost.org> | 2025-08-14 18:35:06 +0200 |
---|---|---|
committer | Guilhem Moulin <guilhem@fripost.org> | 2025-08-14 18:37:14 +0200 |
commit | d62196c41e7667106cd21603bb48acc694029669 (patch) | |
tree | 72d028ab90d66d95136facb79222831ec9fd8620 /import_source.py | |
parent | 7d0dafa2d6c41e594217b784e19c0e463c062bce (diff) |
webmap-import: Warn when the output geometry column is nullable.
Diffstat (limited to 'import_source.py')
-rw-r--r-- | import_source.py | 22 |
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) |