You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Shapely中编辑多边形的顶点坐标?

关于Shapely多边形顶点修改的解答

不可以,Shapely中的所有几何对象都是不可变类型,一旦创建完成就无法修改内部的顶点坐标,必须创建新的多边形对象才能实现顶点变更。

原因说明

Shapely底层基于GEOS几何库实现,GEOS本身就将几何对象设计为不可变,这一设计可以避免几何计算过程中对象意外变更导致的结果异常,同时也方便实现哈希、缓存等优化逻辑,大幅降低多场景下的使用风险。

如果强行尝试直接修改现有多边形的顶点坐标,比如执行polygon.exterior.coords[1] = (2, 0)这类操作,会直接抛出报错:TypeError: 'CoordinateSequence' object does not support item assignment。

替代实现方案

你可以先提取原有多边形的坐标,修改对应顶点后再重新创建多边形,操作复杂度很低:

from shapely.geometry import Polygon

# 原有多边形
polygon = Polygon([[0, 0], [1, 0], [1, 1], [0, 1]])

# 提取外部环坐标转为列表
coords = list(polygon.exterior.coords)
# 修改指定索引的顶点,示例为修改索引为2的[1,1]为[2,1]
coords[2] = (2, 1)
# 生成新的多边形
new_polygon = Polygon(coords)

如果你的多边形带有内部孔洞(内环),还需要同步提取处理polygon.interiors中各个内环的坐标后再传入新的Polygon构造方法即可。


内容的提问来源于stack exchange,提问作者nickponline

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:36:06