My main goal is to simplify multiple polygons, avoiding overlaps and gaps between them.

My initial approach was:

  1. Find intersections for each polygon so that I end up with an array of polygons, each having a number of intersections.

Example: [ {polygon:{feature}, intersections:[linestring,linestring]}, {polygon:{feature}, intersections:[linestring,linestring, linestring]}, {polygon:{feature}, intersections:[linestring]} ]

  1. Assuming a polygon can be represented by its intersections and external lines (e.g. lines no intersecting with any other polygon).

    • Slice a polygon into multiple linestrings.

    • Simplify each individual linestring

    • Concatenate the linestring to form a polygon


  • Polygon A = simplify(A1) + simplify(A2) + simplify(Polygon A - (A1 + A2))

  • Polygon B = simplify(B1) + simplify(Polygon B - B1)

  • Polygon C = simplify(C1) + simplify(Polygon C - C1)

where A1 = B1 and A2 = C1

My question is, is this a good way to simplify multiple neighbouring polygons, or could you recommend a library or and algorithm for this task?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.