Donut Polygons in QGIS
The process of creating Donut Polygons in QGIS is a two step process:- Create the outer ring first.
- Digitize the inner ring in the end.

Make sure you are in an editing session by pressing the



Donut Polygons in ArcMap
Creating a Donut Polygon in ArcMap is somewhat hidden in the concept of multipart geometries. The great plus with ArcMap: When you add a second part (the inner ring) to an existing part it automatically enhance or subtracts the area from the exterior ring if you digitize outside the exterior ring:
In the end it is quite straight forward:
- Digitize the outer ring but don’t double click at the end of this but right-click the mouse and select “Finish Part”
- Digitize the interior ring and end it either with a double-click or with right-click and select “Finish Sketch”
Donut Polygons in ArcGIS Pro
The same situation can be found in arcGIS Pro. Start editing the exterior ring and use the right click to add a new part or use the “Modify” tool to “Continue Feature”. In the end, the creation of Donut Polygons is easier in ArcGIS/ArcMap compared to qgis. But check also the video for ArcGIS Pro:Donut Polygons in geoJSON
This is somewhat a different view on the problem. But it might be of importance if you work with geoJSON on a more computational level. The overall architecture of a geoJSON polygon looks like this:{ "type": "Feature", "properties": { "name": "Donut Polygon" }, "geometry": { "type": "Polygon", "coordinates": [ [ [-1.876101718749999,12.48788989632766], [-1.3175217187499988,12.043710725966251], [-1.3695917187499989,12.448594238033987], [-1.876101718749999,12.48788989632766] ] ] } }We see a simple polygon with three edges. This defines the exterior part of our Donut. The normal geometry type “Polygon” allows nested geometries. We enhance the geometry by adding a new ring:
"coordinates": [ [ [ exterior ring ccordinate pairs ], [ interior ring coordinate pairs ] ] ]The result will look like this:
{ "type": "Feature", "properties": { "name": "Donut Polygon" }, "geometry": { "type": "Polygon", "coordinates": [ [ [-1.876101718749999,12.48788989632766], [-1.3175217187499988,12.043710725966251], [-1.3695917187499989,12.448594238033987], [-1.876101718749999,12.48788989632766] ], [ [-1.7324066162109375,12.443281785521078], [-1.395263671875,12.18232089399501], [-1.4447021484374998,12.418471506919504], [-1.7324066162109375,12.443281785521078] ] ] } }
nice share dude,
we’ve just added two more videos for ArcGIS Pro and ArcMap.
A little history: Oracle Spatial was started as a spatial extension to Oracle 4 in 1983 by CDN Hydrographic Service http://bit.ly/2w4Rapv
Problem is when they tested it (Sylvain then @ CHS now @ Bentley Projectwise by way of Oracle) R-Tree indexing went well with points and lines (fish and shorelines), slow w time-aware points and polygons (schools of fish and islands) but crawled to a halt on donut polygons (lakes in islands) LOL
Nice article, thank you for sharing