根据轴承值获得右转或左转

时间:2013-07-17 11:29:38

标签: android navigation geolocation geometry compass-geolocation

我有三个lat-lon坐标组成两条线A到B到C.还​​有一个函数以0-360方式计算线AB或BC的android中的方位。我计算左边如果差异是+ ve假设为正确,如果 - 如果我正在采取左边......它可以作为轴承(AB)承担(BC)转向...它适用于许多情况但是在某些情况下它不起作用..不起作用的案例是

A-Lat:17.445849,Lng:78.501665 B-Lat:17.445255,Lng:78.501619 C-Lat:17.444593,Lng:78.503553

A-B的轴承是184 B-C的轴承是109

差异(A-B) - (B-C)是75,这是+ ve所以它应该是正确的但是在地图中它是左边的。所以任何人都可以给我很好的方程式来改变方向......

1 个答案:

答案 0 :(得分:0)

oOOPS ...我的计算错了。

这里有一些电子表格,我只是测试了它..

=MOD(A1+540, 360) - MOD(B1+540, 360)

否定表示左侧。
对于其他错过指导的代码感到抱歉。

bool right = (( (a1 + 540) % 360 - (b1 + 540) % 360 ) > 0 );

不太准确,因为零改变将被视为离开..我会留下那一点。