前提:最近公司有一个需求是根据泰森多边形的原理计算基站信号的覆盖范围,因此恶补了下泰森多边形,此处就不对泰森多边形继续描述了,有兴趣的可以在以下网站里看看:
环境:python3.5+
包:numpy,scipy.spatial
主要过程:
通过scipy.spatial的Voronoi包对基站的经纬度进行泰森多边形计算,然后通过得到的类里的部分方法进行计算得到该泰森多边形的边界点,当然需要根据业务场景对这些边界点进行处理后才能符合要求,本次不涉及业务场景,只说明如何得到基站的边界点。
代码:
#伪代码
points_mat=pointsToMat(jizhan_point)#将基站经纬度列表转为矩阵
vor = Voronoi(points_mat)#通过包计算泰森多边形
center = vor.points.mean(axis=0)#计算基站的经纬度均值点
ptp_bound = vor.points.ptp(axis=0)#计算基站的经纬度极差
finite_segments = [] #存放有限端点的中垂线
infinite_segments = []#存放通过计算后的无限端点的中垂线
for pointidx, simplex in