bearingTo(Location dest)
完全计算什么?任何人都可以解释一下吗?
提前致谢。
protected void onCreate(Bundle savedInstanceState) {
DestinationLoc.setLatitude(39.543394);
DestinationLoc.setLongitude(-119.816010);
LocationManager lm =(LocationManager)getSystemService(LOCATION_SERVICE);
String provider = lm.getBestProvider(new Criteria(), true);
loc=lm.getLastKnownLocation(provider)
}
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
Startloc.setLatitude(loc.getLatitude());
Startloc.setLongitude(loc.getLongitude());
if ( Startloc == null ) return;
float azimuth = event.values[0];
float baseAzimuth = azimuth;
mInitialPosition.setText("Initial LatLong: " + Startloc.getLatitude() + " " + Startloc.getLongitude());
GeomagneticField geoField = new GeomagneticField( Double
.valueOf( Startloc.getLatitude() ).floatValue(), Double
.valueOf( Startloc.getLongitude() ).floatValue(),
Double.valueOf( Startloc.getAltitude() ).floatValue(),
System.currentTimeMillis() );
azimuth += geoField.getDeclination(); // converts magnetic north into true north
//Correct the azimuth
azimuth = azimuth % 360;
//This is where we choose to point it
float direction = azimuth + Startloc.bearingTo( DestinationLoc );
float direction2 = Startloc.bearingTo(DestinationLoc);
}
direction2
值显示为负值。
答案 0 :(得分:2)
来源:Android Developers Bearing基本上是另一个与Android中的Location对象关联的ATTRIBUTE。因此,位置有纬度,长度,它可以承载,高度,速度。根据方法描述getBearing(),它表示设备的水平方向。
来源:Wikipedia
在陆地航行中,轴承通常以顺时针方向计算,从参考方向0°开始增加到359.9度。[4]以这种方式测量,轴承被美国陆军称为方位角,而不是其他使用术语轴承的英语国家的军队。[5]如果参考方向是北(正北,磁北或网格北),则轴承称为绝对轴承。在现代陆地导航环境中,真正的,磁性的和栅格轴承总是以这种方式测量,在360度系统中真正的北极,磁北极或网格北极为0°。[4]
答案 1 :(得分:0)
请阅读documentation。它准确地描述了该方法返回。
以真北向东返回近似初始方位 当沿着这个位置和之间的最短路径行驶时 给定的位置。使用WGS84定义最短路径 椭球。 (几乎)反对的位置可能会产生 无意义的结果。
<强>参数强>
dest 目的地位置
<强>返回强>
以度为单位的初始轴承