Géolocalisation en C #

Je suis en train de développer une application qui doit être quelque chose comme un jeu. L'utilisateur aurait certains endroits dans une ville et qu'il aurait à faire quelque chose sur chaque emplacement. Afin de suivre la position de l'utilisateur, j'ai essayé d'utiliser la géolocalisation avec le code suivant:

Geolocator geolocator = new Geolocator();
//geolocator.DesiredAccuracy = Windows.Devices.Geolocation.PositionAccuracy.High;
geolocator.DesiredAccuracyInMeters = 50;
try
{
    Geoposition geoposition = await geolocator.GetGeopositionAsync(TimeSpan.FromMilliseconds(500), TimeSpan.FromSeconds(1));
    textLatitude.Text = "Latitude: " + geoposition.Coordinate.Latitude.ToString("0.0000000000");
    textLongitude.Text = "Longitude: " + geoposition.Coordinate.Longitude.ToString("0.0000000000");
    textAccuracy.Text = "Accuracy: " + geoposition.Coordinate.Accuracy.ToString("0.0000000000");
}

À l'aide de la façon suivante pour obtenir les coordonnées j'ai essayé de tester si l'appareil localiser mon poste correctement avec le code suivant:

if( Math.Abs(geoposition.Coordinate.Latitude - 45.3285) < 0.001 ){
    if (Math.Abs(geoposition.Coordinate.Longitude - 14.4474) < 0.001)
    {
        txt.Text = "KONT";              
    }
}

Le problème est que la précision de la localisation est vraiment petit, si j'ai essayer d'utiliser plus de coordonnées précises, il ne pourrait jamais obtenir les mêmes coordonnées de nouveau, et avec ce code, la précision est vraiment mauvais (il peut échouer, même à 300 mètres).

Quelqu'un a une idée comment faire pour obtenir une mesure plus fiable de l'emplacement, ou un autre moyen de corriger ça?

source d'informationauteur user2700896