python - 从 Shapely 中的平面坐标列表创建矩形列表
问题描述
这不能回答我的问题。
我有一个坐标列表,其中每 5 个连续坐标定义一个矩形的坐标,例如,
mylist=[(0, 7),(4, 7),(4, 12),(0, 12),(0, 7),(7, 1),(10, 1),(10, 8),(7, 8),(7, 1),(4, 8),(10, 8),(10, 12), (4, 12),(4, 8),(0, 0),(7, 0),(7, 7),(0, 7),(0, 0)]
我想用示例中显示的这些坐标在 Shapely 中创建四个矩形。这四个矩形也应该是唯一可识别的。此外,列表大小可以是可变的,因为可以多于或少于当前坐标数。
编辑:
此时,我有 4 个列表:
[[(0, 7), (4, 7), (4, 12), (0, 12), (0, 7)],
[(7, 1), (10, 1), (10, 8), (7, 8), (7, 1)],
[(4, 8), (10, 8), (10, 12), (4, 12), (4, 8)],
[(0, 0), (7, 0), (7, 7), (0, 7), (0, 0)]]
现在我的问题是如何将这 4 组坐标传递给 shapely,以便以后可以将它们绘制成图形并单独识别它们?我是新来的。
解决方案
您可以将 Shapely 对象存储在字典中,然后在需要时随时使用它们,如下所示:
from shapely.geometry import Polygon
your_list = [[(0, 7), (4, 7), (4, 12), (0, 12), (0, 7)],
[(7, 1), (10, 1), (10, 8), (7, 8), (7, 1)],
[(4, 8), (10, 8), (10, 12), (4, 12), (4, 8)],
[(0, 0), (7, 0), (7, 7), (0, 7), (0, 0)]]
your_dict = {}
for i,sublist in enumerate(your_list):
your_dict[i] = Polygon(sublist)
然后绘制它们,您可以通过your_dict
这种方式使用它们:
plt.figure()
for key,your_polygon in your_dict.items():
plt.plot(*your_polygon.exterior.xy)
这将给出:
推荐阅读
- java - 是否有一个 Spring 函数可以删除 CSV 文件中的引号字符或分隔符?
- javascript - 重新分配不会改变 java 脚本中 const 的值吗?
- oracle - OracleXE 在 Windows 上安装 SCOTT 模式
- python - python中的repr方法是否应该总是返回字符串
- ionic3 - 为 Ionic V3 应用安装 Campaign Tracking
- google-cloud-platform - 启用 GCP cloudresourcemanager gcloud config joe.bloggs@googlemail.com 帐户与 GCP 项目所有者角色 joe.bloggs@gmail.com 不匹配
- javascript - 初始路由器推送(VueJS)后,组件道具没有反应
- javascript - 无法发出 Http 请求
- r - 如何计算距离下一次发生的天数?
- json - 将对象转换为可编码对象失败:“偏移”实例