Skip to main content
Solved

How to derive width (polygon) at point feature locations.

  • 19 September 2017
  • 3 replies
  • 12 views

Hi,

I am trying to calculate the width from a polygon at point feature locations (see figure). I was thinking about creating perperdicular linen at the point feature locations (perpendicular to polygon). Clipping the perpendicular lines (using the polygon as clipper) and calculating the length of the perpendicular lines.

Is there an easier way to do this?

Kind regards

Michael

Best answer by takashi

Hi @michael_pieters, if you can assume that left-side boundary and right-side boundary at a section of the road-like polygon are approximately parallel, this could be a solution.

  1. NeighborFinder (inside point -> Base, polygon -> Candidate): Find a point on the boundary of the polygon, which is closest to the given inside point.
  2. VertexCreator (Mode: Add Point): Create a line segment connecting the point output from the Matched port (i.e. a given inside point) and the closest point on the polygon boundary (_closest_candidate_x, _closest_candidate_y).
  3. LineExtender (called Extender in FME 2016 and earlier): Extend the line segment so it crosses both left-side boundary and right-side boundary of the polygon.
  4. Clipper: Clip the extended line by the polygon.
  5. LengthCalculator: Compute the length of the clipped line. The result would be the approximate width at the section.

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

3 replies

courtney_m
Contributor
Forum|alt.badge.img+3
  • Contributor
  • September 19, 2017

That's how I would do it!


takashi
Contributor
Forum|alt.badge.img+17
  • Contributor
  • Best Answer
  • September 20, 2017

Hi @michael_pieters, if you can assume that left-side boundary and right-side boundary at a section of the road-like polygon are approximately parallel, this could be a solution.

  1. NeighborFinder (inside point -> Base, polygon -> Candidate): Find a point on the boundary of the polygon, which is closest to the given inside point.
  2. VertexCreator (Mode: Add Point): Create a line segment connecting the point output from the Matched port (i.e. a given inside point) and the closest point on the polygon boundary (_closest_candidate_x, _closest_candidate_y).
  3. LineExtender (called Extender in FME 2016 and earlier): Extend the line segment so it crosses both left-side boundary and right-side boundary of the polygon.
  4. Clipper: Clip the extended line by the polygon.
  5. LengthCalculator: Compute the length of the clipped line. The result would be the approximate width at the section.


takashi wrote:

Hi @michael_pieters, if you can assume that left-side boundary and right-side boundary at a section of the road-like polygon are approximately parallel, this could be a solution.

  1. NeighborFinder (inside point -> Base, polygon -> Candidate): Find a point on the boundary of the polygon, which is closest to the given inside point.
  2. VertexCreator (Mode: Add Point): Create a line segment connecting the point output from the Matched port (i.e. a given inside point) and the closest point on the polygon boundary (_closest_candidate_x, _closest_candidate_y).
  3. LineExtender (called Extender in FME 2016 and earlier): Extend the line segment so it crosses both left-side boundary and right-side boundary of the polygon.
  4. Clipper: Clip the extended line by the polygon.
  5. LengthCalculator: Compute the length of the clipped line. The result would be the approximate width at the section.

Thanks, got it to work.

 

 


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