I have a set of polygons and they can overlap with each other, like this: enter image description here

I want to modify them in such a way that they don't overlap and the resulting surface area stays the same. Something like this:

enter image description here

It is okay if the shape or the position changes. The main thing is that they should not overlap with each other and the area should not change much (I know the area changed a little in the second image but I drew it manually thus let's just assume that the areas did not change).

I am trying to do it programmatically with the help of Python. Basically I stored polygons in a PostGIS database and with the help of a script I want to retrieve them and modify them.

I am very new to GIS and thus this seems like a difficult task.

What is the correct way of doing it? Is there an algorithm that solves this kind of problems?

  • 1
    You need to clarify a few things: when you say "the resulting surface area stays the same" do you mean the total surface area of the three circles ignoring their overlap, or do you want to create three polygons that have the same area as a circle shown but not overlapping? Are your polygons always circles? Can you draw a diagram with a possible solution for the example given?
    – Spacedman
    Jul 7, 2018 at 17:15
  • 1
    @Spacedman Polygons don't have to be circles. When creating every single polygon I want to modify it if it overlaps with the existing ones so that it does not and its initial area does not change. Not all of them combined. Just the one I am creating. I will try to draw a possible solution. Thank you. Jul 7, 2018 at 17:22
  • @Spacedman some general direction would also help a lot. A newbie I am, I feel clueless now :) Jul 7, 2018 at 17:23
  • 1
    Yes, if you can draw what you want it would help a lot. Also, you don't mention what software you are using or have available. Jul 7, 2018 at 19:07
  • 1
    Something between these lines gis.stackexchange.com/questions/215813/…
    – FelixIP
    Jul 7, 2018 at 20:23


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.