Question

How to simplify/generalize polygons which touch themselve?

  • 28 August 2013
  • 5 replies
  • 49 views

Badge
Dear FME community,

 

 

how can I generalize "normal" polygons which touch themselve and do not overlap? If I use the Generalizer, it creates holes (= new areas) between the original areas. What I want is to simplify the outlines of all the areas together. The MultiLayerAreaGeneralizer (Layer ID set to 1) should to the trick, but by using this transformer, not all of the polygons that enter it come out in the end.

 

 

The amalgamator could perhaps be used like in the URL, but I'm not clear of the settings (and in self amalgamation mode, it takes forever):

 

 

http://fmepedia.safe.com/articles/Samples_and_Demos/Performing-polyonal-generalization-with-the-Amalagamator-Join-Polygons-Amalgams

 

 

Does anyone have an idea how I can just simplify the polygons together in the way of cartographic generalization? I want to create a new layer with just fewer details of the original data.

 

 

Kind regards,

 

Thomas

 

 


5 replies

Userlevel 2
Badge +17
Hi Thomas,

 

 

How about using the SliverRemover after generalization?

 

 

Takashi
Badge
I have found that the Generalizer has the option "Preserve Shared Boundaries". The results look quite promising and the touching boundaries seem to be correct.

 

 

Kind regards

 

Thomas
Userlevel 2
Badge +17
I've overlooked that parameter. Thanks for sharing the information.

 

 

Takashi
Badge

Generalizer with this option is not performing very fast. How can I run things faster?

Badge +3

You can do following:

Create topology out of the object. The nodes should be ordered.

Test for duplicate nodes (x and y are equal). That should yield the ******* selftouching bits.

Remove the vertices between the range of the selftouchers.

Order of nodes is preserved, use counter to create new ordernumbers.

Use pointconnector.

Reply