需要计算两点间距离,可以通过经纬度来计算,具体公式如下
#!/usr/bin/python3 #coding:utf-8 from math import radians, cos, sin, asin, sqrt def point_distance(lon1, lat1, lon2, lat2): # 将十进制度数转化为弧度 lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) # 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 = 6378.137 # 地球平均半径,单位为公里 return c * r * 1000 print(point_distance(113.363232, 31.879132, 113.362455, 31.878233))
最后打印结果,单位是米
123.99814644654447
另外我们可以通过geopy包来计算,这个比较简单,直接安装,然后一行代码就可以算出来了
pip instal geopy
然后一行代码可以算出来,还可以直接出米和千米单位的数值
from geopy.distance import geodesic print(geodesic((30.28708,120.12802999999997), (28.7427,115.86572000000001)).m) print(geodesic((30.28708,120.12802999999997), (28.7427,115.86572000000001)).km)
经纬度误差
赤道周长(米) 度数(度) 40076000 360 111322.2222 1 11132.22222 0.1 1113.222222 0.01 111.3222222 0.001 11.13222222 0.0001 1.113222222 0.00001 0.111322222 0.000001 0.011132222 0.0000001