每个x_多边形表示一个多边形,包含一组坐标
polys = [gangnam_poly, mapo_poly, jamsil_poly, sungsoo_poly, pangyo_poly]
我有我想要找到它所属位置的坐标,也就是说,它是否在一个多边形内
我有一个数据框,看起来像:
id title count pt
0 1 place1 1864 POINT (167.036077 31.490958)
1 2 place2 6466 POINT (147.03103 33.491231)
2 3 place3 4652 POINT (117.030428 37.4925)
在Assign variable names and data in a loop之后 方法,如果为了简单起见,我在字典而不是数据帧上执行此操作:
polys = [gangnam_poly, mapo_poly, jamsil_poly, sungsoo_poly, pangyo_poly]
data={}
for p in polys:
data[str(p)] = 1
print(data)
输出:
{'POLYGON ((127.03302 37.53461, 127.05259 37.52834, 127.06658 37.52084, 127.0752 37.49484, 127.06503 37.49213, 127.02748 37.46701, 127.00611 37.49668, 127.01534 37.50047, 127.01405 37.51698, 127.0186 37.52776, 127.02375 37.53109, 127.03302 37.53461))': 1,
'POLYGON ((126.87833 37.5917, 126.93772 37.5823, 126.95755 37.57426, 126.93554 37.54098, 126.91026 37.54288, 126.844 37.58539, 126.87833 37.5917))': 1
我想使用它的名称,而不是存储在其中的多边形。所以
所需输出: {江南保利:1、马波保利:1等}
编辑:我的解决方案: 我已经通过创建另一个带有名字的列表来做到这一点,随着列表变得越来越长,这将变得单调乏味,因此必须有更有效的方法。在那之前,我一直在做这件事
polys = [gangnam_poly, mapo_poly, jamsil_poly, sungsoo_poly, pangyo_poly]
names = ["gangnam", "mapo", "jamsil", "sungsoo", "pangyo"]
for polygon,n in zip(polys, names):
nodes_df[n] = nodes_df.pt.apply(lambda p: polygon.intersects(p))
目前没有回答
相关问题 更多 >
编程相关推荐