Geolocalização em C #

Estou tentando desenvolver um aplicativo que deve ser algo como um jogo. O usuário teria alguns locais em uma cidade e ele teria que fazer algo em cada local. Para rastrear a posição do usuário, tentei usar a geolocalização com o seguinte código:

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");
}

Usando a seguinte maneira de obter as coordenadas, tentei testar se o dispositivo localizará minha posição corretamente com o seguinte código:

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

O problema é que a precisão do local é realmente pequena; se eu tentar usar coordenadas mais precisas, nunca obteremos as mesmas coordenadas novamente e, com esse código, a precisão é muito ruim (pode falhar até 300 metros).

Alguém tem uma idéia de como obter um local mais confiável ou outra maneira de consertar isso?

questionAnswers(3)

yourAnswerToTheQuestion