diff options
Diffstat (limited to 'lib/utils/clamp_path.py')
| -rw-r--r-- | lib/utils/clamp_path.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/utils/clamp_path.py b/lib/utils/clamp_path.py index fcb34a4b..6b3a56e5 100644 --- a/lib/utils/clamp_path.py +++ b/lib/utils/clamp_path.py @@ -106,7 +106,10 @@ def clamp_path_to_polygon(path, polygon): except FloatingPointError: return path - if len(split_path.geoms) == 1: + # contains() checks can fail without the buffer. + buffered_polygon = prep(polygon.buffer(1e-9)) + + if len(split_path.geoms) == 1 and buffered_polygon.contains(split_path.geoms[0]): # The path never intersects with the polygon, so it's entirely inside. return path @@ -114,9 +117,6 @@ def clamp_path_to_polygon(path, polygon): # start or end coincides with the polygon boundary split_path = [ShapelyPoint(start), *split_path.geoms, ShapelyPoint(end)] - # contains() checks can fail without the buffer. - buffered_polygon = prep(polygon.buffer(1e-9)) - last_point_inside = None was_inside = False result = [] |
