Kry*_*olc 2 gps android location
我有一个小问题.我在location.getSpeed()方法上找到了一个onLocationChanged()方法,.getSpeed()当我呆在同一个地方时,通常不会更新/改为0km/h.
我应该在哪里找到一种location.getGpeed()方法,当我留在原地时更新显示0km/h?
另一个问题.这是我的locationListener:
private final LocationListener locationListener = new LocationListener()
{public void onLocationChanged(Location location) {
boolean var = false;
float distance;
if (firstRun) { distance=0; firstRun=false; }
else
distance = location.distanceTo (startLocation);
Tspeed.setText("0km/h");
if (location.getSpeed()!=0)
{
Tspeed.setText(""+(location.getSpeed()*3600/1000 +"km/h"));
}
else
{
Tspeed.setText("0km/h");
}
sAllDistance += distance; //
startLocation=location;
Tdistance.setText(""+(int)SAllDistance+" m");
}
Run Code Online (Sandbox Code Playgroud)
问题是:当LocationManager得到修复时,第一个AllDistance返回的location.distanceTo()是±50米.
我该如何解决?
实际上,GPS不会一直提供准确的信息.即使你住在同一个地方,有时候,纬度和经度也会有所不同.我认为这取决于minTime与minDistance你提供requestLocationUpdates(...)方法.
无论如何,一旦尝试改变这些值,如下所示.
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
1000L(minTime), 2000.0f(minDistance), myLocationListener);
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
编辑:
你可以做的一件事是,根据文件,location.hasSpeed()返回true如果此修复程序包含速度信息,false否则.当你呆在同一个地方时,false我猜它会回来.
基于此,您可以执行诸如设置值textView等操作.
我没试过,但你可以尝试一次.
| 归档时间: |
|
| 查看次数: |
11813 次 |
| 最近记录: |