【发布时间】:2014-08-05 23:08:30
【问题描述】:
我正在尝试开发一个类似于游戏的应用程序。用户将在城市中有一些位置,他必须在每个位置上做一些事情。为了跟踪用户的位置,我尝试使用带有以下代码的地理定位:
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 米也可能失败)。
有没有人知道如何获得更可靠的位置或其他解决方法?
【问题讨论】:
标签: c# geolocation windows-phone windows-phone-8.1