高效处理平面几何对象的利器
Shapely 是一个用于操作和分析平面几何对象的 Python 库。 它基于著名的 C++ 几何库 GEOS(Geometry Engine - Open Source),提供了点(Point)、线(LineString)、多边形(Polygon)等几何类型的操作接口。
Shapely 广泛应用于地理信息系统(GIS)、空间数据分析、地图绘制等领域,是处理空间关系(如相交、包含、距离等)的理想工具。
使用 pip 安装 Shapely 非常简单:
pip install shapely
注意:某些系统可能需要先安装 GEOS 依赖(如 Linux 上的 libgeos-dev)。
以下是一些常见几何对象的创建方式:
from shapely.geometry import Point, LineString, Polygon
# 创建点
p = Point(0, 0)
# 创建线
line = LineString([(0, 0), (1, 1), (2, 1)])
# 创建多边形
poly = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
.area 和 .length 属性。a.intersects(b)、a.contains(b)。.buffer(distance) 生成缓冲区。.wkt(Well-Known Text)或 .wkb(Well-Known Binary)导出。示例:计算两个多边形是否相交
poly1 = Polygon([(0, 0), (2, 0), (2, 2), (0, 2)])
poly2 = Polygon([(1, 1), (3, 1), (3, 3), (1, 3)])
print(poly1.intersects(poly2)) # 输出: True
78TP文档:Shapely Documentation
GitHub 仓库:Shapely on GitHub