- 积分
- 3632
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-10-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
1、需求缘起
最近要处理些shp数据,求多个多边形的并集,是其中一个需求。
2、效果图
彩色细线是3个多边形,黑色粗线是其并集
3、源代码
from shapely.geometry import Point
from shapely.ops import unary_union
from shapely.geometry import mapping
import matplotlib.pyplot as plt
# 解析Polygon对象x:
def read_polygon(x):
x=mapping(x)
x=x['coordinates'][0]
lng=[];lat=[]
for i in x:
lng.append(i[0])
lat.append(i[1])
return {'lng':lng,'lat':lat}
# 生成几组多边形:
polygons = [Point(i, 0).buffer(0.7) for i in range(3)]
# 这是Polygon对象的序列
# 多边形并集:
a=unary_union(polygons)
# a也是Polygon对象
# 画并集:
result=read_polygon(a)
lng=result['lng'];lat=result['lat']
plt.plot(lng,lat,c='k',lw=10)
# 画子集:
for i in polygons:
result=read_polygon(i)
lng=result['lng'];lat=result['lat']
plt.plot(lng,lat,lw=2)
plt.show()
参考帖子
以下2个帖子内容是一样的:
Python模块之Shapely
CSDN-Python模块之Shapely
|
|