我创建了两个包含几何列(POINT类型)的数据框。现在我想要计算每对点之间的距离,例如第一个数据框中第一行的点与第二个数据框中第一行的点之间的距离等。以下是我的数据框:
df1 <- table %>%
st_as_sf(coords = c("lonCust","latCust"), crs = 4326)
df2 <- table %>%
st_as_sf(coords = c("lonApp","latApp"), crs = 4326)
我使用了
st_distance
函数:distance <- st_distance(df1$geometry,df2$geometry)
但是我得到了一个矩阵,其中计算了每个几何列的每对距离:
[,1] [,2] [,3] [,4] [,5] ...
[1,] 139.7924 7735.5718 15225.02995 558.104089 1016.58121
[2,] 8503.0544 755.2915 8764.75396 7957.289600 8788.02800
[3,] 15306.5855 9336.9008 18.96914 14876.589918 15929.51643
[4,] 548.3045 7232.0164 14898.70637 8.094068 1078.38236
[5,] 911.5635 8084.3086 15993.36365 1127.730022 46.97799
.
.
我希望在一个列中计算距离,只在对应的几何行之间进行计算:
[,1]
[1,] 139.7924
[2,] 8503.0544
[3,] 15306.5855
[4,] 548.3045
[5,] 911.5635
.
.
我了解到有关
geosphere
包的内容,但是sf
具有非常好用的st_distance
函数来测量距离,我想使用它。最重要的是,我需要先将这些数据框连接起来吗?简单的dplyr
中的inner_join
无法连接两个空间数据框,而st_join
则不适用于我,因为我不想通过几何形状进行连接(两个数据框中的几何形状完全不同)。
st_distance(df1$geometry, df2$geometry, by_element = TRUE)
- mrhellmannlibrary(geodist)
еЏҮиѓҢж›өеү«пәЊиЂЊдё”еЏҮд»Өз›өжҺӨењЁdata.frame
дёЉж“ҚдҢњгЂ‚иҮ·жџӨзњ‹geodist()
е’Њ/ж€–geodist_vec()
пәЊе№¶и®ңзҢ®paired = TRUE
гЂ‚ - SymbolixAU