计算R中同一行中两个坐标之间的距离



我有一个数据帧[df],如下所示:

df<-structure(list(  Latitude = c(-23.8, -23.8, -23.9, -23.9), 
Longitude = c(-49.6, -49.3, -49.4, -49.8), 
Latitude1 = c(-23.4, -23.7, -23.4, -23.8), 
Longitude1 = c(-49.7, -49.4, -49.6, -49.7)),
class = "data.frame", row.names = c(NA, -4L))

数据帧包含2个点的GPS坐标,我想计算每行中这2个点之间的距离(以米为单位(。我只想得到每行中2个点之间的距离,而不是距离矩阵。

所需的结果如下:

Latitude   Longitude   Latitude1   Longitude1   Distance_m
-23.8      -49.6       -23.4       -49.7        53

我尝试了geosphere软件包,但没能得到正确的结果。

请问有什么办法吗?

谢谢你的建议。

检查geosphere包中的distm函数:

apply(df, 1, function(x)distm(c(x[1],x[2]),c(x[3],x[4]),fun = distGeo))

tidyverse//中无法再现您想要的53的输出?

library(geosphere)
library(tidyverse)
df %>%
mutate(distance = pmap(list(a = Longitude, 
b = Latitude, 
x = Longitude1,
y = Latitude1), 
~ geosphere::distGeo( c(..1, ..2), c(..3, ..4))))
#   Latitude Longitude Latitude1 Longitude1 distance
# 1    -23.8     -49.6     -23.4      -49.7 45461.49
# 2    -23.8     -49.3     -23.7      -49.4 15053.19
# 3    -23.9     -49.4     -23.4      -49.6 59016.34
# 4    -23.9     -49.8     -23.8      -49.7 15048.01

相关内容

  • 没有找到相关文章

最新更新