在Python中,计算两点之间的距离通常使用欧几里得距离公式。以下是一个简单的函数,用于计算二维平面上两点之间的距离:
import math
def distance(x1, y1, x2, y2):
return math.sqrt((x2 - x1)2 + (y2 - y1)2)
示例使用
x1, y1 = 1, 2 点A的坐标
x2, y2 = 4, 6 点B的坐标
print("两点之间的距离是:", distance(x1, y1, x2, y2))
如果你需要计算的是球面上的两点之间的距离(例如地球表面的两点),则需要使用球面三角学公式。以下是计算地球表面上两点之间距离的函数:
from math import radians, sin, cos, sqrt
def get_distance_earth_surface(lon_a, lat_a, lon_b, lat_b):
将角度转换为弧度
radlat1 = radians(lat_a)
radlat2 = radians(lat_b)
经度差值保持不变
b = radians(lon_a) - radians(lon_b)
使用Haversine公式计算距离
s = 2 * asin(sqrt(pow(sin(radlat1 - radlat2) / 2, 2) +
cos(radlat1) * cos(radlat2) * pow(sin(b / 2), 2)))
地球半径,单位:米
earth_radius =
return s * earth_radius
示例使用
lon1, lat1 = 121., 31. 点A的经纬度
lon2, lat2 = 121., 31. 点B的经纬度
print("两点之间的距离是:", get_distance_earth_surface(lon1, lat1, lon2, lat2), "米")
请注意,上述代码中的地球半径使用的是近似值,实际应用中可能需要使用更精确的值。