我今天开始从事大熊猫的定型工作,我正在尝试使用contains
方法检查点是否位于here的地质选区数据的多边形内。我的代码是:
if janak.boundary.contains(cent_janak):
print('True')
else:
print('False')
其中janak
是来自shapefile几何数据的多边形,而cent_janak
是janak的质心。
为了验证,我像这样绘制它们
from descartes import PolygonPatch
BLUE = '#6699cc'
poly= janak
fig = plt.figure()
ax = fig.gca()
ax.add_patch(PolygonPatch(poly, fc=BLUE, ec=BLUE, alpha=0.5, zorder=2 ))
ax.axis('scaled')
plt.plot(cjx, cjy, 'bo')
plt.show()
为更加清楚起见,janak.boundary.coords.xy
多边形坐标为:
(array('d', [77.27673511633259, 77.28194987388764, 77.29578190561051, 77.27662755381863, 77.25524963905963, 77.2580696782731, 77.26521771742375, 77.26932536547332, 77.26832967477475, 77.27477975458208, 77.27673511633259]),
array('d', [28.540205606503605, 28.52730150785834, 28.495644714432103, 28.493054206486477, 28.506460566601902, 28.521859125598212, 28.525798083314953, 28.52190443074494, 28.540396930973657, 28.544344420558616, 28.540205606503605]))
形心cent_janak.coords.xy
的坐标是:
(array('d', [77.27464056229368]), array('d', [28.51348721728798]))
答案 0 :(得分:3)
致电janak.boundary.contains(cent_janak)
时,您是在询问cent_janak
是否在边界上。您要寻找的方法就是janak.contains(cent_janak)
。