📜  地球上两点间距离的程序(1)

📅  最后修改于: 2023-12-03 15:23:38.671000             🧑  作者: Mango

地球上两点间距离的程序

欢迎使用本程序,本程序用于计算地球上任意两点之间的距离。

使用说明
  1. 确定你需要计算距离的两个点的经纬度坐标;
  2. 调用 calculate_distance 函数,传入两个点的经纬度坐标;
  3. 得到计算结果,单位为千米(km)。
计算方法

本程序基于 Haversine 公式计算地球上两点间距离。

Haversine 公式的计算公式如下:

$$d = 2\cdot r\cdot arcsin\sqrt{sin^2(\frac{\phi_2-\phi_1}{2}) + cos(\phi_1)\cdot cos(\phi_2)\cdot sin^2(\frac{\lambda_2 - \lambda_1}{2})}$$

其中,$\phi_1$ 和 $\phi_2$ 分别为两个点的纬度,$\lambda_1$ 和 $\lambda_2$ 分别为两个点的经度,$r$ 为地球半径,取值约为 $6,371$ 千米。

代码示例
def calculate_distance(lat1: float, lon1: float, lat2: float, lon2: float) -> float:
    """
    Calculate the great circle distance between two points
    on the earth (specified in decimal degrees)
    """
    from math import radians, sin, cos, sqrt, asin

    # 将十进制度数转化为弧度
    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 = 6371  # 地球平均半径,单位为千米
    return c * r

以上为 Python 代码示例,可以直接调用该函数来计算两个点之间的距离。