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

Python haversine库与R distHaversine函数计算地理距离结果差异问询

结果差异原因

核心原因是两个库对经纬度参数的传入顺序要求相反:

  • Python haversine 库要求入参顺序为*(纬度, 经度)*,你的代码传参符合要求,结果符合预期。
  • R geosphere 包的distHaversine函数要求入参顺序为*(经度, 纬度)*,你代码里仍按(纬度, 经度)传参,相当于把经纬度值填反了,因此计算结果完全错误。

验证示例

你可以调整R侧的参数顺序重新计算,结果会和Python侧完全一致:

library(geosphere)
# 第一组点:按(经度, 纬度)传参
distHaversine(c(-87.6353, 41.8777), c(-87.6268, 41.8915)) 
# 输出约1688.14米 = 1.68814 km,和Python结果匹配

# 第二组点:按(经度, 纬度)传参
distHaversine(c(77.088834, 28.426846), c(77.050308, 28.394231))
# 输出约5229.71米 = 5.22971 km,和Python结果匹配

注意事项

目前不同编程语言的地理计算库没有统一的经纬度传参顺序标准,使用任意新的地理计算函数前,建议先查阅官方文档确认参数要求,避免此类传参顺序导致的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 19:09:00