Skip to main content

Hi all,

 

I have a very simple requirement, find the closest location on a polygon to some points then move the points to that location, this has been achieved using the NeighborFinder and VertexCreator transformers. Further on in the workspace I need to use a PointOnAreaOverlayer to transfer the polygon attributes to the point layer (I realise that this can be done in the NeighborFinder step but for the sake of this post, lets assume this is not possible). The issue I am coming up against is that even though the new location of the point is determined by the NeighborFinder, in some cases the point and area are not considered to be overlapping by the PointOnAreaOverlayer.

 

This is my very simple demonstration workspace:

imageThe initial features do not overlap:

image.pngOnce run through the workspace they appear to overlap:

imageHowever, according to the PointOnAreaOverlayer, one of the points does not overlap:

imageThe point that does not overlap (according to the PointOnAreaOverlayer) is the southern most point (circled below). The only difference I can see is that it has been moved to sit on the border of the polygon, but not on a vertex.

imageCan anyone explain this behaviour? From the documentation for the PointOnAreaOverlayer I believe a point on the boundary of a polygon is considered in the polygon.

 

I need the points to both move to the closest location on a polygon AND be considered as overlapping by the PointOnAreaOverlayer.

 

Thanks,

Barrett

Hi @barrett_h​ You've likely encountered an issue with precision. Try an AnchoredSnapper to ensure the points are on the edges of the polygons.


Hi @barrett_h​ You've likely encountered an issue with precision. Try an AnchoredSnapper to ensure the points are on the edges of the polygons.

Hi @danatsafe​, that makes sense and the AnchoredSnapper should do the job. Thank you!


Reply