Skip to main content
Question

SpatialFilter : How to get it to behave as ArcGIS Spatial Join Option:JOIN_ONE_TO_MANY


elpone
Contributor
Forum|alt.badge.img+3

Hi,

I think I am missing something here but I cannot seem to get this to work as I expect. I have some objects sitting on a tile index as the example below.

What I am trying to get is the combination of tiles and objects. In this case five things should get passed out but using the SpatialFilter Transformer only four do.

It seems that once a candidate has been picked by a filter it cannot be used by another filter. I suspect there must be some way to get around this

I want the job to run much as ArcGIS spatial join would with the one-to-many option enabled. Attached is the workspace and some test data. This is part of a much larger workflow where you have arbitrary number of objects and I want to find out what tiles does each object intersect. If tiles are not used by more than one object it works ok but this case does not so well

Regards.

4 replies

erik_jan
Contributor
Forum|alt.badge.img+17
  • Contributor
  • April 20, 2018

Another option is using the AreaonAreaOverlayer.

Set attribute accumulation to merge all attributes and add a name for the list.

Then use the ListExploder to get the required output.

Hope this helps.


takashi
Influencer
  • April 21, 2018
erik_jan wrote:

Another option is using the AreaonAreaOverlayer.

Set attribute accumulation to merge all attributes and add a name for the list.

Then use the ListExploder to get the required output.

Hope this helps.

Agree, but if you need to preserve original geometries, consider using the SpatialRelator instead of the AreaOnAreaOverlayer.

 

 


elpone
Contributor
Forum|alt.badge.img+3
  • Author
  • Contributor
  • April 21, 2018
erik_jan wrote:

Another option is using the AreaonAreaOverlayer.

Set attribute accumulation to merge all attributes and add a name for the list.

Then use the ListExploder to get the required output.

Hope this helps.

Hi @erik_jan, , I've had a look at the AreaOnAreaOverlayer and that is not quite the right tool for the job. A it to some extent does not care or distinguish between the source of the overlaid areas, in some respects it is similar to ArcGIS Union Operator. For example Area polygons can overlap but for the use case I am working on I do not care about that. I only care about getting the set of tiles that intersect a given Area for all my areas. I'll look into @takashi suggestion of SpatialRelator

elpone
Contributor
Forum|alt.badge.img+3
  • Author
  • Contributor
  • April 21, 2018

The way to get the desired result is to use SpatialRelator and a ListExploder as suggested by @takashi instead of the SpatialFilter used in the OP. A sample workflow is attached.

fme-spatialfilter-query-ver3-esrishape2none.fmw


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings