R 大圆距离矩阵的计算

R 大圆距离矩阵的计算,r,matrix,great-circle,R,Matrix,Great Circle,dist(coords)提供使用欧几里德距离的距离矩阵;它还提供了其他几个选项。但它没有提供任何选项,如哈弗森公式 distHaversine()计算给定两组横向/纵向坐标的距离(大圆)。我想知道是否有一个现有的包/函数可以使用哈弗森公式计算大圆距离矩阵。正如您可能已经注意到的,distHaversine()将计算单点和两列坐标矩阵之间的距离 要计算两个坐标矩阵之间的所有成对距离,只需使用apply()逐行迭代其中一个矩阵,计算其每个点到另一个矩阵中所有点的距离 library(geospher

dist(coords)
提供使用欧几里德距离的距离矩阵;它还提供了其他几个选项。但它没有提供任何选项,如哈弗森公式


distHaversine()
计算给定两组横向/纵向坐标的距离(大圆)。我想知道是否有一个现有的包/函数可以使用哈弗森公式计算大圆距离矩阵。

正如您可能已经注意到的,
distHaversine()
将计算单点和两列坐标矩阵之间的距离

要计算两个坐标矩阵之间的所有成对距离,只需使用
apply()
逐行迭代其中一个矩阵,计算其每个点到另一个矩阵中所有点的距离

library(geosphere)

## Example coordinates (here stored in two column matrices)
cc1 <- rbind(c(0,0),c(1,1))
cc2 <- rbind(c(90,0),c(90,90), c(45,45))

## Compute matrix of distances between points in two sets of coordinates
apply(cc1, 1, FUN=function(X) distHaversine(X, cc2))
#          [,1]    [,2]
# [1,] 10018754 9907452
# [2,] 10018754 9907435
# [3,]  6679169 6524042
库(geosphere)
##示例坐标(此处存储在两列矩阵中)

cc1您是否尝试过
库(“sos”);findFn(“{great circle}distance”)
(和变体)?您需要哈弗公式还是仅需要基于矩阵的距离?完美
spDists(data,longlat=TRUE)
正是我想要的。谢谢伟大的为了记录在案,
spDists()
”似乎并没有立即使用哈弗森公式进行“大圆距离(WGS84椭球体)”距离计算。不过,你会知道这对你的申请是否重要。