两个地理定位点之间的方向

时间:2012-03-27 16:15:54

标签: android geolocation

我需要计算两个地理位置点之间的方向(lat和log defined)。我真的不需要整个角度(我发现这样的东西),但只有N,NE,E,SE,S,SW,W,NW很好。

感谢任何帮助

3 个答案:

答案 0 :(得分:3)

您可以使用Location.bearingTo(http://developer.android.com/reference/android/location/Location.html#bearingTo%28android.location.Location%29

从您的点创建2个位置对象,您可以获得精确的方位。然后,您只需将其与8个值进行比较。 (比如介于-22.5和+22.5之间是N,直到67.5是NE,直到112.5是E,依此类推)

答案 1 :(得分:0)

如果它们是短距离,你可以按原样取得拉/长,然后通过atan2(y,x)计算角度,其中y是纬度,x是经度。将生成的角度转换为N,NE,SW等。请注意国际日期线。

答案 2 :(得分:0)

好吧,假设您获得的度数值从0º到360º,您可以使用一种简单的方法:

String[] coordNames = { "N", "NE", "E", "SE", "S", "SW", "W", "NW" };

// assuming this value comes from somewhere else
int degrees = val;

degrees %= 360;
degrees /= 45;

String coord = coordNames[degrees];

您可能会注意到,这不会为您提供正确的近似值。 0º到44º会给你N,45º到89º会给你NE,依此类推。

希望它会让你走上正轨!