纬度和经度之间的负距离

时间:2013-08-27 15:57:11

标签: java distance latitude-longitude

一对纬度和经度(lat1,lng1,lat2,lng2)之间的距离是否为负值?如果是,那么如何计算呢?我试过通过this方法做到这一点,但它总能给我积极的结果。

实际上,我想计算车辆是向前移动还是向反方向移动。

2 个答案:

答案 0 :(得分:1)

距离总是非负面的。

二维距离公式为

D = SQRT( (X1 - X2)^2 + (Y1 - Y2)^2 )

SQRT仅针对非负值的浮点数定义,并且始终返回非负值。此外,组件差异的平方将确保它总是得到非负值。

想一想:负距离意味着什么?如果你需要知道方向,你应该使用向量,而不是标量。


如果没有人出现并首先呈现更好的答案,我会将其整合到答案中,但是这里是如何使用如何找到球面距离(球体表面的距离)的快速解释载体

http://mathworld.wolfram.com/SphericalDistance.html

答案 1 :(得分:1)

  

“我怎么能知道我的车辆已经越过了某个特定的车辆   point(lat,lng)“

基于这个问题回答。

我基本上有两种方法可以做到这一点。

A)(最佳方式imo,捕捉每个场景)跟踪汽车整个时间的行进路线。不断检查它,看它是否等于你的观点。

B)如果你知道它在一条直线(弧线)中走了什么......并看看那个点是否是该线的一部分(弧线)。但在某种意义上,你必须考虑到地球是一个球体!

看看Haversine Forumula

您必须了解汽车将在道路上行驶,因此它永远不会是一条完美的线路,因此除非您根据特定点跟踪每个方向的变化,否则很难跟踪。也许你正在寻找的不是单一点而是地球的一部分。

earth line

例如,如果你从你得到的行结束并且起始点与你正在检查中提琴的“线段”相交!