2017-05-20 15 views
0

私はこの問題を抱えています - 下のコードは私のアプリのクラスの一部です。 今、このクラスは、私の場所へのABOUTである座標を教えてくれます。私が本当にすべき場所から常に数百メートル離れています。なぜこうなった?これは多分私は "罰金"の精度を求めることはありませんか?Xamarin、Android:なぜ座標が間違っていますか?

THANKS :)

ます。public void OnLocationChanged(場所の場所) {

_currentLocation = location; 
    {   
     // this is needed for my mocked location 
     GlobalElapsedRealTime = _currentLocation.ElapsedRealtimeNanos; 

     GlobalLatitude = _currentLocation.Latitude; 
     GlobalLongitude = _currentLocation.Longitude; 

     // Log.Debug("2", "Your Real Location is at " + GlobalLongitude + " // " + GlobalLatitude); 

    } 
} 

public void InitializeLocationManager() 
{ 
    _locationManager = ctxt.GetSystemService(Context.LocationService) as LocationManager; 

    if (_locationManager.AllProviders.Contains(LocationManager.NetworkProvider) 
     && _locationManager.IsProviderEnabled(LocationManager.NetworkProvider)) 
    { 
     _locationProvider = LocationManager.NetworkProvider; 
     Log.Debug("1", "Location Manager has been initialized!"); 
    } 
    else 
    { 
     _locationProvider = String.Empty; 
    } 
} 

public void StartLocationUpdates() 
{ 
    _locationManager.RequestLocationUpdates(_locationProvider, 0, 0, this); 


} 
+0

あなたは同じ問題を持っているかどうかを確認するために、あなたのデバイス上の他のGPSアプリをチェックしていますか? – Jason

+0

私はそれを確かにしました。問題はありません。また、私は常に同じ "間違った"場所に私を置き去りにします...? – user8013509

答えて

0

あなたがLocationManager.NetworkProviderを使用しているためです。これは、セルタワーと既知のWiFiホットスポットに基づいてあなたの場所を推測し、特に正確ではありません。数百メートルのところが正しいと聞こえます。もっと正確なトラッキングのためにあなたが多分にある都市または郊外の作業に役立ちます。

LocationManager.GPSProviderを試してみて、ACCESS_FINE_LOCATIONの権限が有効になっていることを確認してください。修正を受けるのに少し時間がかかるかもしれませんが、はるかに正確です。どのくらいの正確さは、それが実行されているデバイスに依存します(携帯電話のGPSは非常に良いかもしれませんが、チップは通常価格に基づいて選択されるため完全に正確ではありません)。

詳細は:

https://developer.android.com/reference/android/location/LocationManager.html#GPS_PROVIDER

+0

はい!どうすればそれを監督できますか?ありがとうございます ! – user8013509

関連する問題