从曼哈顿距离公式输出返回的距离(以英里或公里为单位)

时间:2018-08-26 03:43:06

标签: math gis haversine

我正在坐标列表上运行出租车距离函数,我想将结果整数转换为英里或公里。例如:

0.0117420 = | 40.721319-40.712278 | + | -73.844311--73.841610 |

我要转换为mi / km的输出为0.0117420。我该怎么办?

1 个答案:

答案 0 :(得分:0)

这似乎是您尝试从(40.721319, -73.844311)导航到(40.712278, -73.841610)的纬度/经度对,并且您想使用“曼哈顿”路线而不是直接路线进行导航的情况大圈路线。

您似乎将这些点视为“矩形”的相对角,在该矩形中,仅允许沿北,南,东和西航向从一个点移动到另一个点,并且沿着路径旅行始终会给旅行者带来麻烦更接近目的地点。

对此的一个近似值是找到所有此类路径的边界矩形的角之一。其中有两个,一个位于(40.721319, -73.841610),另一个位于(40.712278, -73.844311)。因此,您可以选择其中之一,然后选择该路点作为近似两点之间每个“曼哈顿路线”的长度。如果选择第一个,则需要计算从起点到航点再到终点的距离。如:

l(0) = (40.721319, -73.844311)
l(1) = (40.721319, -73.841610)
l(2) = (40.712278, -73.841610)

使用Haversine equations,我们发现l(0)l(1)的距离约为0.2276公里,而l(1)l(2)的距离约为1.005公里整个路线约1.2326公里。

这大约是您选择的“曼哈顿路线”的长度,该距离沿两点之间的路径严格减小。由于地球的曲率还存在一些误差,但是对于彼此靠近且远离任一极的点,这对于大多数应用来说应该足够好。