计算经纬度之间的距离 from math import radians,sin,cos,asin,sqrt def haversine(s1, s2): # 经度1,纬度1,经度2,纬度2 (十进制度数) """ Calculate the great circle distance between two points on the earth (specified in decimal degrees) """ # 将十进制度数转化为弧度 lon1, lat1, lon2, lat2 = map(radians, [s1[0], s1[1], s2[0], s2[1]]) # haversine公式 dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 c = 2 * asin(sqrt(a)) r = 6371 # 地球平均半径,单位为公里 return c * r # 返回单位为 km station1 = [116.35, 40.05] station2 = [116.339,39.929] haversine(station1,station2) # 13.487182564909839