I am new to GIS and ArcGIS.

I have a set of polygons, some of which enclose other polygons. They are lake polygons, and within lake polygons, are smaller island polygons.

If I have a given lake polygon, how can I select or get a list of enclosed island polygons?

Also, some islands may contain lakes within the island. I would like to select those as well.

2 Answers 2


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.

  • +1. But I think he specified the island polygon selection is that for a given lake polygon...so selecting multiple lake polygons can be avoided.
    – ujjwalesri
    Aug 1, 2011 at 10:31
  • @om_henners I stumbled upon the same problem as the person asking the question. However I would need to use this in a model. Is there a way to reproduce this in model builder somehow? If there is I'll post a question about it.
    – 588chm
    Jan 13, 2021 at 12:07

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.

  • did you find a solution, ako? Mar 7, 2014 at 22:08
  • I think the answer as stated here should work.
    – ako
    Mar 8, 2014 at 1:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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