将地图上的点进行聚类,安排交通工具抵达这些簇的质心,然后步行到每个簇内地址。
这里我们直接用给出的文件进行操作,跳过10.4.1节。
添加代码:
def distSLC(vecA, vecB): # 返回地球表面两点之间的距离
a = sin(vecA[0,1] * pi / 180) * sin(vecB[0,1] * pi / 180)
b = cos(vecA[0,1] * pi / 180) * cos(vecB[0,1] * pi / 180) * \
cos(pi * (vecB[0,0] - vecA[0,0]) / 180)
return arccos(a + b) * 6371.0
import matplotlib
import matplotlib.pyplot as plt
def clusterClubs(numClust = 5): # 画图,参数为希望得到的簇数目
datList = []
for line in open('places.txt').readlines():
lineArr = line.split('\t')
datList.append([float(lineArr[4]), float(lineArr[3])])