gpt4 book ai didi

java - Android LocationManager 获取坐标的整数值(而 double 值)

转载 作者:行者123 更新时间:2023-12-01 15:48:33 24 4
gpt4 key购买 nike

我在使用位置 Api 时遇到问题。我正在尝试使用以下代码从任何可用的提供商处获取位置:

//Définir ma localisation
final LocationManager manag = (LocationManager) ActivityRechercheConcession.this.getSystemService(Context.LOCATION_SERVICE);
//Choix du service de localisation en fonction de critères
Criteria crit = new Criteria();
crit.setCostAllowed(false);
crit.setAccuracy(1000); //précis à au moins 1km pret
final String choix_source = manag.getBestProvider(crit, true);
//demander la position courante
manag.requestLocationUpdates(choix_source, 10000, 0, new LocationListener(){
//Lors de la capture de la position
public void onLocationChanged(Location location) {
Log.i("LocationListener","New position from "+choix_source+": ("+location.getLatitude()+","+location.getLongitude()+")");
}
}

但是当我使用模拟器控件发送坐标时(例如长:7.745304,纬度:48.589326)我只获取位置数据中的整数部分(例如 long 7.0、lat 48.0)所以这些值的计算方法是完全错误的。

为什么我会丢失这些数据的小数部分?

最佳答案

Criteria.setAccuracy 方法仅采用两个标志:ACCURACY_FINEACCURACY_COARSE,而不是您使用的绝对数值。我猜 1000 在这里被解释为粗略精度,因此您会得到修剪后的坐标。

换句话说,您应该使用:

crit.setAccuracy(Criteria.ACCURACY_FINE);

获取精确坐标。

关于java - Android LocationManager 获取坐标的整数值(而 double 值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6608567/

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