diff --git a/src/c3nav/mapdata/management/commands/importsvg.py b/src/c3nav/mapdata/management/commands/importsvg.py index c33a7086..0dfe8e5c 100644 --- a/src/c3nav/mapdata/management/commands/importsvg.py +++ b/src/c3nav/mapdata/management/commands/importsvg.py @@ -183,7 +183,7 @@ class Command(BaseCommand): for polygon in self.parse_svg_data(path.attrib['d']): if len(polygon) < 3: continue - polygon = Polygon(polygon) + polygon = Polygon(polygon).buffer(0) polygon = translate(polygon, xoff=-offset_x, yoff=-offset_y) polygon = scale(polygon, xfact=1, yfact=-1, origin=(0, svg_height/2)) polygon = scale(polygon, xfact=width / svg_width, yfact=height / svg_height, origin=(0, 0)) diff --git a/src/c3nav/mapdata/models/geometry/space.py b/src/c3nav/mapdata/models/geometry/space.py index 416f8048..a59c0b81 100644 --- a/src/c3nav/mapdata/models/geometry/space.py +++ b/src/c3nav/mapdata/models/geometry/space.py @@ -85,8 +85,8 @@ class SpaceGeometryMixin(GeometryMixin): def register_change(self, force=False): space = self.space if force or self._state.adding or self.all_geometry_changed or self.geometry_changed: - changed_geometries.register(space.level_id, space.geometry.intersection( - unwrap_geom(self.geometry if force or self._state.adding else self.get_changed_geometry()) + changed_geometries.register(space.level_id, space.geometry.buffer(0).intersection( + unwrap_geom(self.geometry if force or self._state.adding else self.get_changed_geometry()).buffer(0) )) def details_display(self, **kwargs):