fix geometry that has been invalidated by rounding before saving it

This commit is contained in:
Laura Klünder 2017-09-21 16:10:01 +02:00
parent 1f977ca9e6
commit d494a59d6d

View file

@ -76,7 +76,11 @@ class GeometryField(models.TextField):
if value is None:
return None
self._validate_geomtype(value, exception=TypeError)
return json.dumps(format_geojson(mapping(value)))
json_value = format_geojson(mapping(value))
rounded_value = shape(json_value)
if not rounded_value.is_valid:
json_value = format_geojson(mapping(rounded_value.buffer(0)))
return json.dumps(json_value)
class JSONField(models.TextField):