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)
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228675.html原文链接:https://javaforall.net
