Question

Cascaded polygon clipping


Hello to the community!

I'm new to the FME and I'm quite impressed with what it can do and also with the very helpful tips and solutions which I read in this forum!

As a newbee, I'm struggling to get the result which I want, but for most of the experts here, it's probably quite simple:

 

I'm working with polygons which represent the chart coverages of Electrionic Navigational Charts. They are categorized into "usages" with usage 6 having the largest scale (inside harbours) and usage 1 having the smallest scale (covering entire oceans). The set of polygons is currently overlapping each other and my goal is to have a non-overlapping set of polygons - perfectly touching each other's boundaries - which give me the best chart usage at any given point.

I have already created a workflow where I dissolved usages 2 to 6 and then used the Clipper to clip usage 1 with this. Similarly, I dissolved usage 3 to 6 and clipped usage 2 with it - and so forth. Doing it this way seems to get me there but my guess is that the DonutBuilder could do it much quicker? Also, I would like to make use of the AreaGapAndOverlapCleaner to perfect the result.

However, I don't want to mess with the original data too much since it will be important for the subsequent processes (which will use this clipped set of polygons), whether or not a particular feature is indeed covered by that particular usage. This mapping needs to be rather accurate so I only like to get rid of polygons which, after the clipping process, are remains and practically a line only.

The result should also retain the original name of the chart polygon (cell_name) and not dissolved with other polygons of the same usage. I hope you can help me to set up an efficient process that can do the job.

 

I'll attach a few polygons from all usages so that you have something to work with. Also, I attached a few graphics.

 

Thanks in advance for your help already! :-)


2 replies

Userlevel 5
Badge +29

Have a look at the attached. The transformer doing most of the work is the AreaOnAreaOverlayer

Have a look at the attached. The transformer doing most of the work is the AreaOnAreaOverlayer

Thanks for this. Very helpful.

Reply