Question

Finding areas covered by one polygon but not another

  • 7 February 2020
  • 1 reply
  • 6 views

Badge

My apologies for the confusing title. I'm looking for a way to have FME return an area that is covered by one polygon feature but not another. This is for checking coverage of collected data. I have included a screenshot for reference.

I've tried a few transformers already but none of them return the void area. Any help is much appreciated.

I'm looking to get a return area feature of the "triangle" seen above.


1 reply

Badge +3

Can either use:

Clipper

Put the larger areas as the Clippee, and the area layer containing the triangle as the Clipper. Anything on the Outside Port are the parts of the polygons that are not within the triangular area.

AreaOnAreaOverlayer with List Output Mode turned On

This creates a Union of the 2 polygon layers, with a List of the attributes of the source polygons. Any output area that has list attributes from both layers overlay, whereas if the list only contains attributes from one of the layers then they don't overlay.

Send the output of AreaOnAreaOverLayer to ListSearcher, and Search the index for an Attribute Value or Attribute Name that only occurs in the Triangle Area polygons. Anything on the "Not Found" Port are the sub-areas that are the difference between the two layers.

If the areas are clean enough, you don't need to use Lists and can just look at the Overlap Count Attribute value instead from AreaOnAreaOverlayer, but otherwise List Searching will definitively tell you.

Reply