[GIS] How to quickly fill multiple gaps in a series of adjacent polygons

arcgis-desktoparcmappolygon

I've been given a "background" dataset which is designed to draw as the first layer in a complicated map. For some reason the data provider has previously erased this dataset with roads, parks, etc. The white parts of this image are the areas which have been cut from the dataset, which is comprised of many individual polygons.

enter image description here

The problem is that the datasets which draw above this layer have changed, leading to many small gaps visible when the datasets are overlaid.

enter image description here

What is the best approach to filling in all the gaps in the background polygon? The full dataset looks like the image below – I want the outer edges to remain, with the white gaps in the middle filled in:

enter image description here

I would normally try Buffer and Dissolve, but I don't have a dataset showing the outside edges of this shape, so I can't clip the resultant polygon back to the original shape. Typically, this dataset doesn't align with other "authoritative" coastline datasets.

I only have a Basic license so don't have access to fancy Topology tools. Am I stuck with manually digitising the outer boundary of this shape?

Best Answer

  1. Create 1 big rectangular polygon = extent of 1st ( no roads )
  2. Union it with 1st layer, delete ones with FIDfirst!=-1
  3. Explode result to single part polygon = BLANKS
  4. Calculate centroids of 2nd layer to create point shapefile with attributes of the parent, e.g. 'lake','road'. = PNTS
  5. Spatial join PNTS with BLANKS, keeping unique BLANKS id of blank polygons=ATTRIBS.
  6. Join ATTRIBS table to BLANKS, using blanks id.

You might experiment with type of spatial join at 5 because centroid points might fall outside BLANKS. This will fill gaps. No easy solution for outer boundary, sorry

Related Question