Finding polygons within polygon using ArcGIS Desktop?

I'm assuming the lake polygons are in the same feature class as the island polygons? Also, I'm assuming ArcGIS 10, but the below method will work in 9.3 etc. also.

But the simplest way of doing this, assuming that you don't need to know which island/lake is contained by which other lake (ie, just a selection of islands in lakes) then in the table of contents for ArcGIS duplicate the layer (add it to the ArcMap session twice) and rename one so they have different names.

The from the first feature class (I'll call it 'A') select all lake features as an attribute selection. This can be done with Select by Attributes from the Selection menu.

Then from the Selection menu choose Select by Location. We want to select features from 'B', so check that in the box up the top. In the drop down choose 'A' as the selection feature and make sure that 'Use Select Features' is checked. The from the selection type choose select within and you should be done.


If you have many lake features and island features to match, you may want to perform a spatial join with the target layer being the islands. By spatially joining, you are assigning attributes from a source layer (here lakes) to the target layer based on how the layers overlap/contain/intersect one another. All island features will theoretically be assigned to the lake they fall within.

There is a spatial join function both in the toolbox and in the main interface; the toolbox version gives you a bit more control as to how to perform the join, and how large a radius to consider for each match. I use that if it is a large dataset, i.e. more than a few 1000 points for performance reasons.

If you store the result in a personal geodatabase, you can then go into access if you are licensed and query the result(or you could get the same results from just looking at the attribute table, sorted):

select [lake], [island] 
from [layersAndIslands]
order by [lake],[island];

You should get a list of all the islands, preceded by which lake it falls in.