2017-02-17 36 views
0
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的正方形内。或者,我可能只是不知道包含方法是如何工作的。 p.within(poly)也返回False。我是否正确使用了Polygon类,或者我几何学上真的很糟糕?Python的匀称Polygon.contains(点)不给正确的答案(我认为)

回答

2

多边形应该被理解为

Polygon([(0,0), (5,0), (5,5), (0,5)]) 
你的情况

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

>>> 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 
+0

谢谢!有效 –

相关问题