在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), "米")
请注意,上述代码中的地球半径使用的是近似值,实际应用中可能需要使用更精确的值。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/145394.html