使用R中的distm函数计算两个坐标之间的距离给出了与在excel中计算相同内容时不同的答案

问题描述 投票:0回答:1

我正在尝试计算两个坐标(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函数相同的答案。

r excel geospatial latitude-longitude
1个回答
2
投票

你必须改变经度和纬度的顺序,因为(参见插图):

必须以经度和纬度(并按此顺序)指定地理位置!

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
© www.soinside.com 2019 - 2024. All rights reserved.