【发布时间】:2017-06-26 10:39:02
【问题描述】:
我想计算几个 GPS 点之间的距离。 我试过了
distm(c(lon1,lat1), c(lon2,lat2), fun = distHaversine)
这仅适用于一点,但不适用于我的数据框中的列。
所以我按照这里的建议尝试了:
Calculate distance between 2 lat longs
但是对于这两个计算,我确实得到了不同的结果:
df <- read.table(sep=",", col.names=c("lat1", "lon1", "lat2", "lon2"),text="
7.348687,53.36575,7.348940,53.36507
7.348940, 53.36507,7.350939,53.36484")
# as recommended in the link above
distHaversine(df[,2:1], df[,4:3])
[1] 80.18433 223.97181
# with distm
distm(c(7.348687,53.36575), c(7.348940,53.36507), fun = distHaversine)
[,1]
[1,] 77.54033
distm(c(7.348940, 53.36507), c(7.350939,53.36484), fun = distHaversine)
[,1]
[1,] 135.2317
那么如何计算数据框列中两个 GPS 点之间的正确距离(即 distm(c(lon1,lat1), c(lon2,lat2), fun = distHaversine))?我仔细检查了如此多的距离,以至于我知道我以这种方式得到了正确的距离。
提前致谢。
【问题讨论】: