get_changed_geometry(): operate on cleaned geometry
This commit is contained in:
parent
00df96cbe0
commit
c754f046ee
1 changed files with 5 additions and 2 deletions
|
@ -118,9 +118,12 @@ class GeometryMixin(SerializableMixin):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def get_changed_geometry(self):
|
def get_changed_geometry(self):
|
||||||
|
field = self._meta.get_field('geometry')
|
||||||
|
new_geometry = self.geometry
|
||||||
|
new_geometry = field.to_python(field.get_prep_value(new_geometry))
|
||||||
if self.orig_geometry is None:
|
if self.orig_geometry is None:
|
||||||
return self.geometry
|
return new_geometry
|
||||||
difference = self.geometry.symmetric_difference(self.orig_geometry)
|
difference = new_geometry.symmetric_difference(self.orig_geometry)
|
||||||
if self._meta.get_field('geometry').geomtype in ('polygon', 'multipolygon'):
|
if self._meta.get_field('geometry').geomtype in ('polygon', 'multipolygon'):
|
||||||
difference = unary_union(assert_multipolygon(difference))
|
difference = unary_union(assert_multipolygon(difference))
|
||||||
return difference
|
return difference
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue