7

Does anyone know how I can extract the holes in a polygon layer as a separate layer in QGIS?

An example could be a country with a number of lakes cut out of the polygon - I need the lakes.

PolyGeo
  • 65,136
  • 29
  • 109
  • 338
Teresa
  • 105
  • 1
  • 7

1 Answers1

13

This is fairly simple and you can do it all natively in QGIS (i.e.without exporting to PostGIS).

  1. Convert you polygon to lines (Vector->Geometry Tools->Polygon to lines)
  2. Convert the lines back into polygons (Vector->Geometry Tools->lines to polygons)
  3. Difference your new polygons against the original polygons

Step 2 is the key here. Step two creates a set of overlapping polygons, one of which represents your landmass with no holes and the others are your lakes. Step three kills the landmass polygon leaving just the lakes.

I vaguely remember a thread where somebody was asking how to de-doughnut polygons. You could use this same approach but instead of differencing your result with the original, simply dissolve the result, or do a spatial join and then select by attribute if dissolve is too crude... anyway, that's getting off-topic.

MappaGnosis
  • 33,857
  • 2
  • 66
  • 129