2011-07-07 5 views
0

ロケーションAPIを使用して問題が発生しました。私はこのコードを使用して、プロバイダの使用可能な任意の場所を取得しようとしている:Android LocationManagerが座標の整数値を取得しています(ダブルの場所)

//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)エミュレータコントロールで座標I「は 位置データの整数部分のみを取得する(long 7.0、lat 48.0など) これらの値の計算方法は完全に偽です。

誰かがアイデアを持っているのですか、なぜ私はそれらのデータの端数部分を失うのですか? ACCURACY_FINEACCURACY_COARSE、ないあなたが使用していた絶対数値:

よろしく、 アントワーヌ・ウェーバー

答えて

0

問題は、Eclipseのエミュレータコントロールからであり、コードからではありませんでした。

それを解決するためにいくつかの私は当然、この行を追加してたeclipse.iniを設定する必要があります。

-Duser.language=fr 

を、その後私が使用していた:私のロケールに対応する

-Duser.language=en 

は、私が使用"昏睡"の代わりに "ドット"の値で私は叫んだ。 コードがうまく実行されているように:D

1

Criteria.setAccuracy方法は2つだけのフラグを取ります。私は1000がここで粗精度と解釈されているので、調整された座標を取得すると思います。言い換えれば

、あなたが使用する必要があります。

crit.setAccuracy(Criteria.ACCURACY_FINE); 

を正確な座標を取得します。

+0

考えていただきありがとうございますが、その変更を行っても結果は同じです=( –

関連する問題