R 语言计算空间距离

最近在研究计算真实空间两个点的距离, 比如已知 A, B 两点的经纬度坐标,计算两点之间的距离。 在 R 语言中,已经有很多大神提供的空间地理数据包,经过搜索发现最备受推崇的是 geosphere 包。

使用方法也非常简单:

library(geosphere)

df <- data.frame(lon = c(lon1, lon2), lat=c(lat1, lat2))
distance <- distGeo(df[1, ], df[2, ])

得到的距离结果单位是 m

这个包的最大优势是计算速度很快,比如这里geosphere 包的 distGeo 方法和 sp 包的 spDistsN1 方法的 Benchmark 对比。

附赠内容

  1. 批量转换地址为经纬度工具
  2. 百度地图经纬度拾取系统
  3. R 语言实现 46 种距离算法