Skip to main content
Solved

Testing shp polygons before closing area


Forum|alt.badge.img

Hello, I hope someone can help me with my problem. I am fairly new to FME and my first task is to close parcel polygons from .SHP. My approach was to use transformers LineCloser, Matcher and AreaBulder in that order and this works fine if data is good(Picture 1). I will be working with .SHP that are not 100% correct for example not all lines in .SHP will touch in same point (see Picture 2) or they will intersect (Picture 3). And at last my question. Is there a possibility in FME that I can test my SHP for this type of issues?

Picture1

Picture 2

Picture 3

Best answer by jdh

You can use a Snapper to correct issues like Picture 2. (Depending on the tolerance and snapping type it may do weird things in picture 3.)

 

 

You can also use the Intersector or TopologyBuilder to ensure the lines are properly noded.

 

 

To identify them, dangle lines can be identified by the ToplogyBuilder (Nodes with only one edge), for lines that cross, maybe a SpatialRelator with the lines being sent to both ports and attributes that must differ set to a unique ID for the line. Predicates to Test would be both Touches and Intersects.

 

If the lines both touch and intersect, then they "intersect" at the ends, which is good, if they only intersect, but do not touch, then they are a case like picture 3.

 

 

View original
Did this help you find an answer to your question?

2 replies

jdh
Contributor
Forum|alt.badge.img+28
  • Contributor
  • Best Answer
  • April 13, 2018

You can use a Snapper to correct issues like Picture 2. (Depending on the tolerance and snapping type it may do weird things in picture 3.)

 

 

You can also use the Intersector or TopologyBuilder to ensure the lines are properly noded.

 

 

To identify them, dangle lines can be identified by the ToplogyBuilder (Nodes with only one edge), for lines that cross, maybe a SpatialRelator with the lines being sent to both ports and attributes that must differ set to a unique ID for the line. Predicates to Test would be both Touches and Intersects.

 

If the lines both touch and intersect, then they "intersect" at the ends, which is good, if they only intersect, but do not touch, then they are a case like picture 3.

 

 


Forum|alt.badge.img
  • Author
  • April 16, 2018
jdh wrote:

You can use a Snapper to correct issues like Picture 2. (Depending on the tolerance and snapping type it may do weird things in picture 3.)

 

 

You can also use the Intersector or TopologyBuilder to ensure the lines are properly noded.

 

 

To identify them, dangle lines can be identified by the ToplogyBuilder (Nodes with only one edge), for lines that cross, maybe a SpatialRelator with the lines being sent to both ports and attributes that must differ set to a unique ID for the line. Predicates to Test would be both Touches and Intersects.

 

If the lines both touch and intersect, then they "intersect" at the ends, which is good, if they only intersect, but do not touch, then they are a case like picture 3.

 

 

Thank you very much, this is helpful.

 

 


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