From 122d7b71f059e4a65298eee4d727dcf6314ea5ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Mon, 28 Nov 2016 15:46:25 +0100 Subject: [PATCH] dont clean geometry if it would create a multipolygon --- src/c3nav/mapdata/utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/c3nav/mapdata/utils.py b/src/c3nav/mapdata/utils.py index 2dc7a973..bfc7b248 100644 --- a/src/c3nav/mapdata/utils.py +++ b/src/c3nav/mapdata/utils.py @@ -50,6 +50,9 @@ def round_coordinates(data): def clean_geometry(geometry): + """ + if the given geometry is a Polygon and invalid, try to make it valid if it results in a Polygon (not MultiPolygon) + """ if geometry.is_valid: return geometry @@ -58,7 +61,7 @@ def clean_geometry(geometry): for interior in geometry.interiors: p = p.difference(Polygon(list(interior.coords))) - if p.is_valid: + if isinstance(p, Polygon) and p.is_valid: return p return geometry