Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

gis: Fixed #5434, GEOS `simplify()` may now preserve topologies via p…

…atch from rcoup.

git-svn-id: http://code.djangoproject.com/svn/django/branches/gis@6315 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 9c1714234a8695a8c0838f2e5f650da043a52892 1 parent 101446d
@jbronn jbronn authored
Showing with 11 additions and 2 deletions.
  1. +11 −2 django/contrib/gis/geos/base.py
View
13 django/contrib/gis/geos/base.py
@@ -496,13 +496,22 @@ def point_on_surface(self):
"Computes an interior point of this Geometry."
return self._unary_topology(lgeos.GEOSPointOnSurface)
- def simplify(self, tolerance=0.0):
+ def simplify(self, tolerance=0.0, preserve_topology=False):
"""
Returns the Geometry, simplified using the Douglas-Peucker algorithm
to the specified tolerance (higher tolerance => less points). If no
tolerance provided, defaults to 0.
+
+ By default, this function does not preserve topology - e.g. polygons can
+ be split, collapse to lines or disappear holes can be created or
+ disappear, and lines can cross. By specifying preserve_topology=True,
+ the result will have the same dimension and number of components as the
+ input. This is significantly slower.
"""
- return self._unary_topology(lgeos.GEOSSimplify, c_double(tolerance))
+ if preserve_topology:
+ return self._unary_topology(lgeos.GEOSTopologyPreserveSimplify, c_double(tolerance))
+ else:
+ return self._unary_topology(lgeos.GEOSSimplify, c_double(tolerance))
def relate(self, other):
"Returns the DE-9IM intersection matrix for this Geometry and the other."

0 comments on commit 9c17142

Please sign in to comment.
Something went wrong with that request. Please try again.