点多边形,简单的4顶点多边形,没有外部库

2024-04-29 08:59:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我用matplot lib在地图上绘制东西,有一个坐标图集,我有一个4顶点的点集来定义地图上的边界,我想清除图集中所有不在该边界内的条目。你知道吗

我一直在尝试matplotlib路径。包含\u点,但是它似乎不起作用,并且输出打印的地图删除了一些点,但不是边界之外的所有点。你知道吗

我的地图集数据包含特定地理区域的动植物景观

border= [(-35.2825, 149.108), (-35.2873, 149.118), (-35.2714, 149.118), (-35.2758, 149.127)]
border_path= Path(border, codes=None, closed=True)

# Atlas data is defined in another part. contains [name, lat, lon]
for n, i in enumerate(atlas_data):
    lat_lon = (i[1], i[2])

    if not border_path.contains_points([lat_lon], transform=None):
        del atlas_data[n]

Tags: pathinnonedatalib地图绘制边界
1条回答
网友
1楼 · 发布于 2024-04-29 08:59:06

未经测试,但如果使用inboundspoints而不是atlas数据来绘制点,则这应该可以工作-注意contains points if语句不再具有not

border= [(-35.2825, 149.108), (-35.2873, 149.118), (-35.2714, 149.118), (-35.2758, 149.127)]
border_path= Path(border, codes=None, closed=True)
inboundspoints = []
# Atlas data is defined in another part. contains [name, lat, lon]
for n, i in enumerate(atlas_data):
    lat_lon = (i[1], i[2])

    if border_path.contains_points([lat_lon], transform=None):
        inboundspoints.append( atlas_data[n] )

相关问题 更多 >