Windows 8.1商店应用程序中3G / 4G网络的当前位置问题?

时间:2016-08-11 05:57:29

标签: c# windows-8.1 bing-maps windows-8.1-universal

我使用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网络检查当前位置?

1 个答案:

答案 0 :(得分:0)

这是预期的,因为位置精度取决于用于计算位置的方法。以下是大多数常见消费设备中使用的定位方法的准确性(商用设备更准确,但大部分手机都没有使用):

  • GPS:5米 - 15米
  • WI-FI三角测量:10米 - 350米
  • 手机塔三角测量:40米--5公里
  • IP地址地理编码:如果不在私人或移动设备上,则在50公里范围内 网络

正如您所看到的,当依靠3G / 4G来检测您的位置时,在某些情况下可能会高达5KM。