2017-05-20 2 views
0

So habe ich dieses Problem - der unten stehende Code ist Teil einer Klasse in meiner App. Nun, diese Klasse gibt mir Koordinaten, die ungefähr zu meinem Standort gehören. Immer ein paar 100 Meter von wo ich wirklich sein sollte. Warum passiert dies? Ist das vielleicht, weil ich nicht nach einer "guten" Genauigkeit frage?Xamarin, Android: Warum bekomme ich falsche Koordinaten?

DANK :)

public void OnLocationChanged (Lage, Lage) {

_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

haben Sie überprüft, eine andere GPS-App auf Ihrem Gerät zu sehen, ob das gleiche Problem hat? – Jason

+0

sicher, dass ich das getan habe. Es hat keine Probleme. auch, es bringt mich immer zum selben "falschen" Platz ...? – user8013509

Antwort

0

Es ist, weil Sie die LocationManager.NetworkProvider verwenden. Dies schätzt Ihren Standort anhand von Mobilfunkmasten und bekannten WLAN-Hotspots und ist nicht besonders genau. Wenn man ein paar hundert Meter draußen ist, klingt das nach rechts. Nützlich, um herauszufinden, in welcher Stadt oder in welchem ​​Vorort Sie sich befinden, aber nicht für eine genauere Verfolgung.

Versuchen Sie mit LocationManager.GPSProvider und stellen Sie sicher, dass die ACCESS_FINE_LOCATION Berechtigung aktiviert ist. Es kann ein wenig länger dauern, um eine Reparatur zu bekommen, aber es wird viel genauer sein. Wie genau es auf das Gerät ankommt, auf dem es läuft (GPS-Telefon kann ziemlich gut sein, aber nicht ganz genau, da die Chips normalerweise auf dem Preis basieren), und wie viel von einer Lösung Sie bekommen können - hohe Gebäude können es zum Beispiel stören.

Weitere Details:

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

+0

JA! Wie könnte ich das übersehen! Vielen Dank ! – user8013509

Verwandte Themen