Skip to main content
 首页 » 编程设计

Python shapely Polygon.contains(Point) 没有给出正确答案(我认为)

2025年05月04日26yyy_WW

from shapely.geometry import Polygon, Point 
 
p = Point(2,2) 
poly = Polygon((0,0), (0,5), (5,0), (5,5)) 
 
print poly.contains(p) 

这会打印出 False,尽管我很确定 (2,2) 在长度 5 的正方形内。或者也许我只是不知道 contains 方法是如何工作的。 p.within(poly) 也返回 False。我是否正确使用了 Polygon 类,还是我真的不擅长几何?

请您参考如下方法:

多边形应构造为

Polygon([(0,0), (5,0), (5,5), (0,5)]) 

在您的例子中,序列 (0,0), (0,5), (5,0), (5,5) 指定顺时针旋转 90 度的“字母 Z”,不是兴趣广场的边界。实际上,它甚至不会产生有效的多边形,即

>>> P=Polygon([(0,0), (0,5), (5,0), (5,5)]) 
>>> P.area 
0.0 
>>> P.is_valid 
Self-intersection at or near point 2.5 2.5 
False