4

I have a set of points grouped and enclosed by a Concave Hull polygon as in this question. Within an outer boundary that encloses all the polygons I would like to make these polygons contiguous, that is individual polygons should expand so that each polygon shares edges with its neighbours or the enclosing boundary. Is this possible? I am using QGIS.

This what the original polygons look like:

Concave hull polygons

This is an approximation of what I want, the rules are that the number of polygons should stay the same and that all points that originally were in a particular polygon, should remain within the altered version of that polygon.

Tessellated polygons

Kadir's original solution works well but left a couple of artefacts.

Artefacts

The updated answer resolves this problem.

1
  • 3
    Can you add a screenshot of your map? It may help people visualize the problem better.
    – Techie_Gus
    Feb 26, 2021 at 9:40

1 Answer 1

5
  • First, use one of Densify tools (Densify by interval or Densify by count) suitable for you to add additional vertices on polygons' edges.
  • Extract the vertices to points using Extract vertices tool.
  • Create Voronoi polygons using these points. (Voronoi polygons tool) > Layer_A
  • Add a field (POL_ID as an example) to Voronoi polygons (Layer_A) to indicate intersecting Concave Hull. (Join attribute by location tool) > Layer_B
  • Use Dissolve tool to combine polygons in Layer_B by POL_ID.
4
  • It works fine, but leaves a few artefacts, probably not too many to edit manually, but would be nice to get rid of those as well. Feb 27, 2021 at 15:30
  • @KobusHerbst What is unit of data? m/inch or degree? Feb 27, 2021 at 15:47
  • It leaves artefacts because of the small number of points. So, I've edited the answer. I think it works now. Feb 27, 2021 at 16:03
  • Thank you that solved the problem Feb 28, 2021 at 3:18

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.