0

我在使用 Location 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()+")");
    }
}

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

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

4

2 回答 2

1

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

换句话说,您应该使用:

crit.setAccuracy(Criteria.ACCURACY_FINE);

以获得精确的坐标。

于 2011-07-07T09:55:34.993 回答
0

问题来自 Eclipse 的 Emulator Control,而不是来自代码。

有些要解决它,我必须通过添加以下行来正确配置 eclipse.ini:

-Duser.language=en

对应于我的语言环境,所以我使用了:

-Duser.language=fr

之后我不得不在发送的价值中使用“昏迷”而不是“点”。这样代码运行良好:D

于 2011-07-12T12:29:08.403 回答