1. 头文件
from shapely.geometry import MultiPolygon, GeometryCollection, LinearRing
from shapely.ops import cascaded_union, nearest_points
from shapely.wkt import loads
from shapely.wkt import dumps
2. 点
geometry.Point
常用方法
构造
Point(x, y, z)
近似相等
# decimal为判断时的小数精度
# 例如decimal = 5表示小数点后5位以下的部分都舍去然后再进行判断
p1.almost_equals(p2, decimal)
2. 折线
即polyline
geometry.LineString
常用方法
构造
# 用列表进行初始化
LineString(list([(1, 2), (3, 4)]))# 扩展:也可以用两个列表拼接
LineString(list(p1.coords) + list(p2.coords))
延展
# 使其有宽度,类型变为Polygon
self.buffer(buffer_size, cap_style)
常用属性
获取所有点坐标
# 返回坐标字符串
self.coords# 转换成列表
list(self.coords)# 是否有效,例如长度不能为0
self.is_valid
3. 环
geometry.LinearRing
常用属性
有效
# 自相交或者面积为0都视为无效
self.is_valid
方向
# 逆时针排列
self.is_ccw
4. 面
有可能是简单多边形框polygon,也有可能是两个多边形框嵌套
注意:只能是二维的
geometry.Polygon
常用方法
相交
# 判断与折线相交
self.intersection(line)# 判断与其它面相交
self.intersection(polygon)
包含
self.cotains(line)
常用属性
所有点坐标
self.coords
外框点坐标
self.exterior.coords
面积
self.area
与其它类型的转换
shapely转字符串
geom = dumps(self.geom, rounding_precision=precision)
字符串转shapely
self.geom = loads(self.geom)
5. 多面
多个polygon组合在一起
常用方法
构造
# 一般返回类型为面
multi_polygon = MultiPolygon(polygons)
6. 基本方法
求并
union_polygon = cascaded_union(multi_polygon)
寻找最近邻点
# 返回两个点
points = nearest_points(polygon_1, polygon_2)