Skip to main content

Hi,

 

I have 3 polygons. (Print screen; purple) Project A, Project B and Project C. The polygons overlap. In addition, I have another layer consisting of polygons. These are roads. (Print screen, gray). Now I want to assign the project name to each road object. So if a road belongs to 3 projects I want to get 3 road objects, each with a different project name. How do I do that?

With a spatial relator, the road section that falls within 3 objects gets the same project name 3 times instead of 3 different project names. Clipper does not clip on al the 3 object bounderies.

 

 

 

I think i found it. The MultiClipper. If there is another option i like to hear it.


I still think the SpatialRelator should do the job you need. During my weekly live stream I tried it out with my own data and it seemed to produce the results that I think you're looking for. So check out the video here: https://www.youtube.com/watch?v=QB3LXE9ycp0&t=2932s - perhaps I found a setting or parameter that would make a difference in your case?


Hi @fme_hans​ , assuming that each project polygon feature has an attribute storing unique project name, a possible way is:

SpatialRelator: merge project names as elements of "_relationships" list from project polygons (Supplier) to spatially related road polygons (Requestor),

ListExploder: explode the list on the road polygons which have one or more elements in the list,

Clipper: clip the roads by the project polygons, grouping by project name - i.e. setting the project name attribute to the Group By parameter in the Clipper.


Hi,

 

Thanks. I found a custom transformer, MultiClipper. That uses a spatial relator, list and a clipper. So it does what you discribe.


Reply