You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Haversine距离Python计算函数结果异常问题求助

问题排查:Haversine距离计算结果差异原因

核心问题:角度与弧度的转换缺失

Python标准库math中的sin、cos、atan等三角函数,默认接收的参数是弧度(radians),但你传入的(0, 100, 50, 80)是角度(degrees)值,这直接导致三角函数计算结果偏离实际,最终距离数值出现巨大误差。

修正后的代码

在计算前将所有经纬度参数转换为弧度:

import math

def distance_haversine(latitude1, longitude1, latitude2, longitude2):
    # 角度转弧度
    lat1 = math.radians(latitude1)
    lon1 = math.radians(longitude1)
    lat2 = math.radians(latitude2)
    lon2 = math.radians(longitude2)
    
    a = math.sin((abs(lat1 - lat2))/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(abs(lon1 - lon2)/2)**2
    c = 2 * math.atan(math.sqrt(a)/math.sqrt(1-a))
    return 6371 * c

验证结果

调用修正后的函数传入(0, 100, 50, 80),返回结果约为5875.70公里,与你提到的计算器结果一致。

内容的提问来源于stack exchange,提问作者Lapin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 02:32:03