我正在尝试计算两个坐标(40.777250, -73.872610) and (40.6895, -74.1745)
之间的距离。
在R中使用distm会得到以下结果:
> distm (c(40.777250, -73.872610), c(40.6895, -74.1745), fun = distHaversine)
33713.61
当我使用Excel通过以下函数计算距离时
6378134 * ACOS(COS(RADIANS(90-40.777250)) *COS(RADIANS(90-40.6895)) +SIN(RADIANS(90-40.777250)) *SIN(RADIANS(90-40.6895)) *COS(RADIANS(-73.872610-(-74.1745))))
答案是27274.49199
。
我想知道为什么这两种方法给出了不同的答案以及我是否做错了什么。我尝试了一个在线坐标距离计算器,它给出了与我的excel函数相同的答案。
你必须改变经度和纬度的顺序,因为(参见插图):
必须以经度和纬度(并按此顺序)指定地理位置!
result <- distm (c(-73.872610,40.777250), c(-74.1745, 40.6895), fun = distHaversine)
# [,1]
# [1,] 27274.5
要么:
distHaversine(c(-73.872610,40.777250), c(-74.1745, 40.6895))
# [1] 27274.5