2011-11-30 12 views
4

私は、これまで ...それがない...とても良いグーグルマップで自分の位置を示したアプリケーションを書いていますが、私の場所を示して正しくgpsの場所を頻繁に更新するには?

問題は、私は動いていた場合、このGPSは更新されないということです(または、しばらくしてから)

ネイティブのGoogleマップ(アンドロイド用)のようにこれを行う方法を知っている人はいますか? これは、これは私のコードです...あなたは「私の場所」をクリックした場合、それはあなたが移動するように変更点滅する青の点を示し、

です:私は何かが欠けていた場合

//Initializing the listeners   
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 35000, 10, networkLocationListener); 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 35000, 10, gpsLocationListener); 



//and now, in both 'networkLocationListener' and 'gpsLocationListener' 
//I overwrite the method 'onLocationChanged': 

@Override 
public void onLocationChanged(Location location) { 
    Log.i("test", "New network location: "+location.getLatitude()+ 
        " , "+location.getLongitude()); 
    myLongitude= location.getLongitude(); 
    myLatitude= location.getLatitude(); 
} 

//and the variables myLongitude and myLatitude are the only ones that I need to display my 
//position in the map... 

は誰もが知っています?

答えて

5

使用しているメソッド呼び出しはrequestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)で、35000msごとまたは35秒ごとに更新するように指示しています。その番号をあなたに合ったものに下げてみてください。しかし、数字が小さいほどバッテリーの使用量は増えます。

MapViewにインジケータを表示する場合は、MyLocationOverlayを参照してください。

1

あなたはこれを永遠に残したくはありませんが、まだショットを与えていない場合は、minTimeとminDistanceの値をゼロに設定する価値があります。

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, gpsLocationListener); 

MINTIMEが0より大きい場合、LocationManagerは、潜在的に電力を節約するために位置更新の間MINTIMEのミリ秒間休むことができました。 minDistanceが0より大きい場合、デバイスはminDistanceメーターで移動する場合にのみブロードキャストされます。 requestLocationUpdates Reference

- できるだけ頻繁に通知を得るために、0

の両方のパラメータを設定

関連する問題