I have a set of polygons that represent bodies of water.

In the same feature are polygons that are the islands in the body of water. So for a given lake, there are smaller polygons within that represent the islands in the same feature. However, the actual water polygon itself for that lake there are "holes" where the islands exist.

So for a lake with one island in the middle, the water polygon would look like a donut.

Now I want to create a layer of water polygons with the holes filled in, so that when I want to view all the lakes in a map, I can see all the water polygons without holes in them.

Note: An island may contain bodies of water within itself. There may even be nested bodies of water within an island, which is part of a body of water that is part of another island. Kind of like an inception of water/islands :-).

How would I be able to do this in ArcMap?

3 Answers 3


If you want to do this through editing you can find a simple method here. Also from this article: "There is a much simpler solution. If you run the Union tool on the feature class in question (so it is the only feature class in the list) and uncheck the 'gaps allowed' checkbox, it will fill in the gaps/donut holes which you can then query simply by the missing attributes."

You can also use the Merge or Append tools in ArcGIS to combine those polygons. The first creates a new output dataset and the second adds to an existing dataset. If you go this route I would recommend merging the polygons and then performing a union (which can eliminate any gaps). This may be your best bet since you can later add any nested islands.

  • One thing I didn't make clear was that the islands and water polygons are part of the same dataset. In our data, an attribute indicates whether or not the polygon is water or island. So they already are "merged". How would I be able to take the island polygons and fill in the holes? Can this be done programatically without having to manually union islands to water polygons?
    – LeeMobile
    Aug 2, 2011 at 20:09
  • See @Craig's answer regarding the Eliminate Polygon Part tool. Without working with your data it's difficult to provide an exact workflow, but you should be able to quickly solve this using the tools mentioned up to this point (Merge, Union, Eliminate) and some experimentation.
    – Radar
    Aug 2, 2011 at 20:47
  • I think from your comments they are not merged. the water polygons and island polygons are in the same dataset, and have seperate rows (features for each). you can use my solution or cartographic representation to accomplish what you need.
    – Brad Nesom
    Aug 3, 2011 at 4:10

The Eliminate Polygon Part tool in ArcGIS 10 can drop interior parts and do it based on conditions like area etc. See the tool description here


You can make a copy of your layer (this gives two versions of the same data).
Then set the islands with a definition query Type is like "Island".
make that layer brown (for dirt) and put it above the water.
Then make the def query for lakes say type is not "Island".
change the fill to blue and off you go.

This simply depends on having a field (mine is named type) that contains values for each polygon

  • 2
    Cartographic Representations can do this without the layer duplication
    – Mapperz
    Aug 2, 2011 at 21:29

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.