Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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 ArcGIS for Desktop?

share|improve this question

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.

share|improve this answer
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 '11 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 '11 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 '11 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

share|improve this answer
This was too easy, thanks – Simon Feb 17 '15 at 4:47

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

share|improve this answer
Cartographic Representations can do this without the layer duplication – Mapperz Aug 2 '11 at 21:29

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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