Skip to content

Commit

Permalink
gis: Fixed #5434, GEOS simplify() may now preserve topologies via p…
Browse files Browse the repository at this point in the history
…atch from rcoup.

git-svn-id: http://code.djangoproject.com/svn/django/branches/gis@6315 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
jbronn committed Sep 15, 2007
1 parent 101446d commit 9c17142
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions django/contrib/gis/geos/base.py
Expand Up @@ -496,13 +496,22 @@ def point_on_surface(self):
"Computes an interior point of this Geometry." "Computes an interior point of this Geometry."
return self._unary_topology(lgeos.GEOSPointOnSurface) 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 Returns the Geometry, simplified using the Douglas-Peucker algorithm
to the specified tolerance (higher tolerance => less points). If no to the specified tolerance (higher tolerance => less points). If no
tolerance provided, defaults to 0. 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): def relate(self, other):
"Returns the DE-9IM intersection matrix for this Geometry and the other." "Returns the DE-9IM intersection matrix for this Geometry and the other."
Expand Down

0 comments on commit 9c17142

Please sign in to comment.