gpt4 book ai didi

python - Shapely contains(point) 总是给出 False

转载 作者:太空宇宙 更新时间:2023-11-04 00:07:19 27 4
gpt4 key购买 nike

我今天开始研究 geopandas 和 shapely,我正在尝试使用 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()

结果图是这样的。 enter image description here

为了更清楚 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])) 

最佳答案

当您调用 janak.boundary.contains(cent_janak) 时,您是在询问 cent_janak 是否位于边界上。您正在寻找的方法很简单 janak.contains(cent_janak)

关于python - Shapely contains(point) 总是给出 False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53654056/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com