From comments at Determining if point on boundary using shapely? I am creating an ArcPy equivalent Q&A to that one which was answered for shapely. Quoting the asker of the original question:
I'm new to Python, and I want to test if a certain point lies ON the (boundary) of a polygon - not inside, not outside, just if it's on the boundary. The points and polygon already defined
polygon = [(3, 2), (5, 1), (7, 2), (8, 6), (9, 7), (11, 6), (10, 4), (12, 2), (15, 2), (16, 5), (19, 7), (18, 11), (14, 12), (11, 9), (5, 9), (2, 6)]
Point_X = 14
Point_Y = 12
this point should be a boundary. How can I do that?
Answer
As commented by @Vince on the original question:
Due to the imprecision associated with floating-point values, far fewer points which are "on" a line will actually be reported as such in real-world situations. If you want to test this, your code needs to use ArcPy functions to assemble
Polygon
andPointGeometry
objects, so that you can cast the Polygon to a line (usingGeometry.boundary()
) and test for point intersection withGeometry.contains()
. Be sure to specify an appropriateSpatialReference
.
No comments:
Post a Comment