用途:Shapely 专注于二维几何本身,用于精确操作几何形状、执行集合运算、判断空间关系、清理与校验无效几何、计算面积长度质心边界、生成缓冲区与简化复杂线,以及线性参考。它不关心坐标系与文件格式,只处理形状之间的数学关系。
主要能力:支持 Point、LineString、Polygon、MultiPoint、MultiPolygon 等几何类型;提供相交、并集、差集、对称差等集合运算;提供 contains、within、intersects、touches、overlaps、crosses、disjoint 等空间谓词;支持 buffer、centroid、representative_point、simplify、convex_hull;支持沿线的 project 与 interpolate 线性参考;支持 WKT、WKB 序列化与反序列化;Shapely 2.0+ 支持对 NumPy 几何数组的向量化操作。
使用方式:安装命令为 pip install shapely numpy。常用导入包括 from shapely import Point, LineString, Polygon, MultiPoint, MultiPolygon,from shapely import ops, wkt, wkb 与 import shapely。几何对象不可变,操作返回新对象。合并大量多边形时应使用 ops.unary_union,而非循环调用 union。对同一复杂多边形反复查询点时可先用 prepare() 建立空间索引。涉及大量几何的邻近查询可用 STRtree,其 query 与 nearest 方法可返回索引。无效几何可用 shapely.validation.make_valid 修复。
适用场景:二维几何精确操作、集合运算、空间谓词判断、脏几何校验与修复、几何属性计算、缓冲区与简化、线性参考,以及 GIS 相关流程中作为几何引擎使用。
限制:Shapely 在笛卡尔平面工作,不考虑地球曲率与经纬度,距离为 sqrt(dx²+dy²),直接用经纬度计算距离得到的是无意义的度;Z 坐标仅可存储,多数运算忽略 Z 并投影到 XY 平面;几何运算可能因浮点误差产生极小的碎片多边形,需按面积阈值过滤;split、intersection 等可能返回 GeometryCollection,需要按几何类型过滤。缺失事实:官方未在本资料中说明收费、价格、平台或效果信息,暂未提供。