📜  计算球体上两点之间距离的Haversine公式(1)

📅  最后修改于: 2023-12-03 14:57:33.630000             🧑  作者: Mango

Haversine公式计算球体上两点之间距离

在计算球体上两点之间的距离时,可以使用Haversine公式。

Haversine公式的定义

Haversine公式是指计算球体表面两点间最短距离的公式,它是根据经纬度计算出球面距离的一个公式。

Haversine公式的公式

以下是Haversine公式的公式:

import math

def haversine(lat1, lon1, lat2, lon2):
    """Calculate the great circle distance between two points 
    on the earth (specified in decimal degrees)
  
    Args:
        lat1 (float): Latitude of the first point in decimal degrees.
        lon1 (float): Longitude of the first point in decimal degrees.
        lat2 (float): Latitude of the second point in decimal degrees.
        lon2 (float): Longitude of the second point in decimal degrees.
        
    Returns:
        float: Distance between the two points in kilometers.
    """
    # convert decimal degrees to radians 
    lon1, lat1, lon2, lat2 = map(math.radians, [lon1, lat1, lon2, lat2])

    # haversine formula 
    dlon = lon2 - lon1 
    dlat = lat2 - lat1 
    a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon/2)**2
    c = 2 * math.asin(math.sqrt(a)) 
    r = 6371 # Radius of earth in kilometers. Use 3956 for miles
    return c * r
代码说明

这里给出了用Python实现Haversine公式的代码。该代码接收经纬度信息作为输入,计算出这两个点之间的地球表面距离,并将结果以千米为单位返回。

在代码中,使用math库进行三角函数的计算,将角度转换为弧度,计算出该点在地球表面上的弧线距离。

总结

Haversine公式是一种计算球体表面上两点之间最短距离的数学公式,对于需要计算地球表面距离的应用程序非常有用。通过使用该公式,程序员可以轻松地计算出两个地球上任意两点之间的距离。