我正在尝试开发一款类似游戏的应用程序。用户会在城市中有一些位置,需要在每个位置上进行相应的操作。为了追踪用户的位置,我尝试使用以下代码来获取地理位置:
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");
}
我使用以下方法获取坐标,并尝试使用以下代码测试设备是否可以正确定位我的位置:
使用以下方式获取坐标,我尝试使用以下代码测试设备是否能够正确地定位我的位置:
if( Math.Abs(geoposition.Coordinate.Latitude - 45.3285) < 0.001 ){
if (Math.Abs(geoposition.Coordinate.Longitude - 14.4474) < 0.001)
{
txt.Text = "KONT";
}
}
问题在于位置的准确度非常低,如果我尝试使用更精确的坐标,它再也无法获得相同的坐标,并且使用这个代码后准确度非常差(甚至可能会失败300米)。
有人有什么办法可以获取更可靠的位置,或者另一种修复方法吗?