gpt4 book ai didi

android - 为什么 getSpeed() 在 android 上总是返回 0

转载 作者:IT王子 更新时间:2023-10-28 23:28:50 24 4
gpt4 key购买 nike

我需要通过 GPS 获取速度和航向。但是,我从 location.getSpeed() 获得的唯一数字是 0 或有时不可用。我的代码:

        String provider = initLocManager();
if (provider == null)
return false;
LocationListener locListener = new LocationListener() {
public void onLocationChanged(Location location) {
updateWithNewLocation(location, interval, startId);
Log.i(getString(R.string.logging_tag), "speed =" + location.getSpeed());
}

public void onProviderDisabled(String provider){
updateWithNewLocation(null, interval, startId);
}

public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
};

_locManager.requestLocationUpdates(provider, interval, DEFAULT_GPS_MIN_DISTANCE, locListener);


private String initLocManager() {
String context = Context.LOCATION_SERVICE;
_locManager = (LocationManager) getSystemService(context);

Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(true);
criteria.setSpeedRequired(true);
criteria.setCostAllowed(true);
//criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = _locManager.getBestProvider(criteria, true);

if (provider == null || provider.equals("")) {
displayGPSNotEnabledWarning(this);
return null;
}

return provider;
}

我尝试玩标准但没有成功。有谁知道问题出在哪里?

最佳答案

location.getSpeed() 仅返回使用 location.setSpeed() 设置的内容。这是您可以为位置对象设置的值。

要使用 GPS 计算速度,您需要做一些数学运算:

Speed = distance / time

所以你需要这样做:

(currentGPSPoint - lastGPSPoint) / (time between GPS points)

全部转换为 ft/sec,或者您想要显示的速度。这就是我在制作运行者应用时的做法。

更具体地说,您需要计算绝对距离:

(sqrt((currentGPSPointX - lastGPSPointX)^2) + (currentGPSPointY - lastGPSPointY)^2)) / (time between GPS points)

创建一个新的 TrackPoint 类或其他东西可能会有所帮助,它将 GPS 位置和时间保存在里面。

关于android - 为什么 getSpeed() 在 android 上总是返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4811920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com