Skip to main content
Solved

I would like to find out point which does not intersect with line.

  • September 15, 2017
  • 5 replies
  • 82 views

Best answer by fmelizard

Hi @ujjwalpakhare. Welcome to the FME Knowledge Center Community!

The following transformers may be useful by applying the opposite logic they are usually used for: Intersector, PointOnLineOverlayer, or the SpatialFilter. Please consider checking out this article on Determining Spatial Relationships.

If you require further assistance, sharing a few more details will help the FME community help you. Please reply to this thread and provide additional details including:

  • The version of FME you are using, including build number and edition
  • A small sample of your data, or screenshots of the data in the FME Data Inspector
  • A description of your expected output, with screenshots if possible
  • Your FME workspace
  • Your FME translation log file
  • Any other information that may be useful to share

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

5 replies

fmelizard
Safer
Forum|alt.badge.img+20
  • Safer
  • 3719 replies
  • Best Answer
  • September 15, 2017

Hi @ujjwalpakhare. Welcome to the FME Knowledge Center Community!

The following transformers may be useful by applying the opposite logic they are usually used for: Intersector, PointOnLineOverlayer, or the SpatialFilter. Please consider checking out this article on Determining Spatial Relationships.

If you require further assistance, sharing a few more details will help the FME community help you. Please reply to this thread and provide additional details including:

  • The version of FME you are using, including build number and edition
  • A small sample of your data, or screenshots of the data in the FME Data Inspector
  • A description of your expected output, with screenshots if possible
  • Your FME workspace
  • Your FME translation log file
  • Any other information that may be useful to share


courtney_m
Contributor
Forum|alt.badge.img+19
  • Contributor
  • 127 replies
  • September 15, 2017

You can use the SpatialFilter transformer. Set the Lines as the Filter and the Points and the Candidate. If you have multiple lines, makes sure Filter Type is set to "Multiple Filters". Set Spatial Predicates to Test to "Filter Intersects Candidate". The points that do not intersect the line will exit through the Failed port.


danilo_fme
Celebrity
Forum|alt.badge.img+51
  • Celebrity
  • 2077 replies
  • September 15, 2017

Hi @ujjwalpakhare,

You can use the PointOnLineOverlayer and Tester to filter Points were _overlaps = 0.

Thanks,

Danilo


takashi
Celebrity
  • 7843 replies
  • September 15, 2017

You can use the SpatialFilter transformer. Set the Lines as the Filter and the Points and the Candidate. If you have multiple lines, makes sure Filter Type is set to "Multiple Filters". Set Spatial Predicates to Test to "Filter Intersects Candidate". The points that do not intersect the line will exit through the Failed port.

Just be aware that there could always be a computational error in geometric operations by computers, and FME won't apply a tolerance implicitly to determine spatial relations. This means, even if it's mathematically true that a point is on a line, there are cases that the SpatialFilter could not determine the relation correctly.

 

I therefore think the PointOnLineOverlayer is suitable here since you can specify a tolerance. Or, it's also a possible approach to use the Bufferer to create a slender buffer representing tolerance area around the line, then apply the SpatialFilter to filter the points by the buffer.

  • Author
  • 2 replies
  • September 18, 2017

Thanks for the solution. It helps. However, it gives the error where point not snapped on line.