Skip to main content

Desired functionality scenario: criteria stating the minimal Requestor overlap percentage the Supplier needs to have. (e.g., Supplier overlaps at least 80% of Requestor, or else the record is <Rejected>).

I believe that adding this property to the SpatialRelator would add a lot of value and save a lot of complexity and time.

But for now, I would like to know in as much of a step-by-step fashion as possible, how to achieve this functionality, which I believe could be accomplished more elegantly with a SpatialRelator upgrade.

Feel free to chime in if you also support this functionality.

No need for tht.

You can use an AreoOnArea overlayer to test for relative overlaps.

It is not complicated to do so.

,

I don't think an upgrade is nescessary for that.

You need to use a AreOnArea overlayer.

First create a area attribute for inputstreams by ID and fme_feature_type (or create a feature_type attribute yourself). (if objects to be compared are from a transformer, you can name the transformer and then expose fme_feature_type)

Create a area attribute (for instance "original_area")

Then use AoA with a list attribute set.

After AoA you do a areacalculator named like "overlap_area".

Create a string using a stringconcatenator on the list ID.

Test on overlaps >1.

Then use a tester to test if some or more ID's are within this string (with the "IN" test).

Then calculate percentage of contributing ID's (

round(100*"overlap_area"/"original_area"))

Then test if it's 80% (or whatever precentage is required).

If it's just two different ID's things are easy.

If more then testing is more extensiv.

You can, after selection, aquire original area'by using a merger on the ID attribute. ( or rdissolve them on ID and feature_type)


No need for tht.

You can use an AreoOnArea overlayer to test for relative overlaps.

It is not complicated to do so.

,

I don't think an upgrade is nescessary for that.

You need to use a AreOnArea overlayer.

First create a area attribute for inputstreams by ID and fme_feature_type (or create a feature_type attribute yourself). (if objects to be compared are from a transformer, you can name the transformer and then expose fme_feature_type)

Create a area attribute (for instance "original_area")

Then use AoA with a list attribute set.

After AoA you do a areacalculator named like "overlap_area".

Create a string using a stringconcatenator on the list ID.

Test on overlaps >1.

Then use a tester to test if some or more ID's are within this string (with the "IN" test).

Then calculate percentage of contributing ID's (

round(100*"overlap_area"/"original_area"))

Then test if it's 80% (or whatever precentage is required).

If it's just two different ID's things are easy.

If more then testing is more extensiv.

You can, after selection, aquire original area'by using a merger on the ID attribute. ( or rdissolve them on ID and feature_type)

@gio Can you please elaborate on the "IN" test?


No need for tht.

You can use an AreoOnArea overlayer to test for relative overlaps.

It is not complicated to do so.

,

I don't think an upgrade is nescessary for that.

You need to use a AreOnArea overlayer.

First create a area attribute for inputstreams by ID and fme_feature_type (or create a feature_type attribute yourself). (if objects to be compared are from a transformer, you can name the transformer and then expose fme_feature_type)

Create a area attribute (for instance "original_area")

Then use AoA with a list attribute set.

After AoA you do a areacalculator named like "overlap_area".

Create a string using a stringconcatenator on the list ID.

Test on overlaps >1.

Then use a tester to test if some or more ID's are within this string (with the "IN" test).

Then calculate percentage of contributing ID's (

round(100*"overlap_area"/"original_area"))

Then test if it's 80% (or whatever precentage is required).

If it's just two different ID's things are easy.

If more then testing is more extensiv.

You can, after selection, aquire original area'by using a merger on the ID attribute. ( or rdissolve them on ID and feature_type)

I still see a many-to-one number of steps involved rather than an optional percent-overlap parameter.

However, I'm very appreciative for you showing how to get it done!


@vasuki A IN (a,b,h)

search in concatenated list


The overlay is core, even if you put process in a tcl or python caller.


Reply