The Eliminate tool offers a useful way of getting rid of thousands of small gaps and overlaps (slivers) automatically.
According to its description, it "eliminates polygons by merging them with neighboring polygons that have the largest area or the longest shared border".
However, this would not quite be the result that I need.
I am looking for a way to control the merging behaviour based on a background layer (OS MasterMap).
In the example below, the sliver (G) would normally be merged with the larger polygon (A).
However, here I would need it to be merged with polygon B (but not because it is the smaller one).
That way, the shared boundary of A and B would get aligned with the MasterMap boundary (the grey lines of the background layer).
EDIT 1: So, in some cases, slivers would get merged with the larger polygons, while in other cases with the smaller ones.
Is there any way to achieve this without having to go though more than 100,000 cases like this individually?
EDIT 2: I should clarify that the yellow polygons (A and B) are part of the same layer. I am trying to fix errors (gaps and overlaps) on the yellow layer. G could be a gap or an overlap (but in the way I've drawn it in my illustration it is a gap -- I have a lot more gaps than overlaps to fix!).
