我使用C#开发了一个Windows 8.1 Store App,我想检测用户的当前位置。当我连接到Wi-Fi时,我获得了完美的位置,但是当我连接到3G / 4G网络时,我根本没有获得当前位置,或者有时它会靠近位置。我使用以下代码来检测当前位置
geolocator = new Geolocator();
geolocator.DesiredAccuracy = PositionAccuracy.High;
geolocator.DesiredAccuracyInMeters = 1000;
geolocator.MovementThreshold = 100;
//geolocator.ReportInterval = 500;
try
{
Geoposition mygeoPosition = await geolocator.GetGeopositionAsync();
}
catch(UnauthorizedAccessException ex)
{
UserMessageUtil.ShowMessage("Location is disabled in Settings");
await Launcher.LaunchUriAsync(new Uri("ms-settings-location:"));
}
catch(Exception ex)
{
UserMessageUtil.ShowMessage("We are sorry, location services are unavailable.");
}
geolocator.PositionChanged += geolocator_PositionChanged;
有人可以建议,我做错了吗?有没有其他应用程序可以用3G / 4G网络检查当前位置?
答案 0 :(得分:0)
这是预期的,因为位置精度取决于用于计算位置的方法。以下是大多数常见消费设备中使用的定位方法的准确性(商用设备更准确,但大部分手机都没有使用):
正如您所看到的,当依靠3G / 4G来检测您的位置时,在某些情况下可能会高达5KM。