我希望能够使用dplyr/geosphere创建多个坐标之间的“矩阵”距离。我已经看到geosphere包提供了这个功能。我成功地创建了两个向量之间的距离,但是我在创建完整矩阵时遇到了困难。
这是一个包含多个坐标的样本表格。
这是一个包含多个坐标的样本表格。
df <- data.frame(latitude = c(49.48609,-8.14671,11.28625),
longitude = c(8.463678,143.05793,-11.18285))
latitude longitude
1 49.48609 8.463678
2 -8.14671 143.057930
3 11.28625 -11.182850
我需要的输出结果如下:
latitude longitude distance-latlon1 distance-latlon2 distance-latlon3
1 49.48609 8.463678 NA *latlon2><latlon1 *latlon3><latlon1
2 -8.14671 143.057930 *latlon1><latlon2 NA *latlon3><latlon2
3 11.28625 -11.182850 *latlon1><latlon3 *latlon2><latlon3 NA
我尝试使用geosphere,但我只找到了一种计算两列之间距离的方法(在这个片段中结果为0)。
library(geosphere)
df$distance <- distVincentyEllipsoid(df[,c('longitude','latitude')],
df[,c('longitude','latitude')])