Xamarin UWP项目中的CrossGeolocator返回错误的当前位置

问题描述

我的Xamarin UWP项目中的CrossGeolocator返回错误的当前位置。返回给我的位置是明尼苏达州的莱克维尔。但是我离它很远。这是代码

   var locator = CrossGeoLocator.Current;
   locator.DesiredAccuracy = 100;
   var position = await locator.GetPositionAsync(TimeSpan.FromSeconds(20),null,true);

问题出在哪里?有什么建议吗?

谢谢!

解决方法

Xamarin UWP项目中的CrossGeolocator返回错误的当前位置

如果您的设备不包含GPS传感器,则CrossGeoLocator api将优先获取具有IP地址的当前位置。如果您的本地网络使用VPN代理,则会导致地图根据代理的ip地址找到相应的位置,这会使位置与实际位置产生偏差。

但是现在我无法在没有VPN的情况下尝试工作。

如果您不能使用禁用vpn。更好的方法是将GPS sensor添加到设备中。它具有更高的优先级。