在前段时间的项目中,用到计算两个经纬度的直线距离,在这里分享一下这个代码。

在 Python 中,math 模块是一个内置的数学函数库,无需安装即可使用。可以直接在 Python 脚本中导入 math 模块来使用其中的数学函数。

math 模块提供了很多常用的数学函数,如三角函数、指数函数、对数函数、幂函数、取整函数等。

回到正题,两个经纬度之间的直线距离可以使用球面三角法来计算。下面是计算两个经纬度之间直线距离的一种常用方法:

import math

def calculate_distance(lat1, lon1, lat2, lon2):
    # 将经纬度转换为弧度
    lat1 = math.radians(lat1)
    lon1 = math.radians(lon1)
    lat2 = math.radians(lat2)
    lon2 = math.radians(lon2)

    # 使用 Haversine 公式计算两点之间的距离
    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.atan2(math.sqrt(a), math.sqrt(1-a))
    distance = 6371 * c  # 地球平均半径为 6371 公里

    return distance

# 示例:计算两个经纬度之间的直线距离
lat1 = 40.7128  # 纬度1
lon1 = -74.0060  # 经度1
lat2 = 51.5074  # 纬度2
lon2 = -0.1278  # 经度2
distance = calculate_distance(lat1, lon1, lat2, lon2)
print(f"直线距离:{distance} 公里")

在上面的代码中,calculate_distance() 函数使用 Haversine 公式计算两个经纬度之间的距离。经纬度以度为单位进行输入,并先将其转换为弧度。最后,使用地球的平均半径乘以计算结果,得到两点之间的直线距离。

请注意,这个方法计算的是两点之间的直线距离,并不考虑地球的非球形形状和地形变化。如果需要更精确的距离计算,得使用更复杂的地球模型或使用专门的地理信息系统库。

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐