[英]Windows Phone 8 Geolocator returns fake location on emulator
[英]Windows Phone 8 Geolocator cached location
在Windows Phone应用程序中,我得到如下地理位置:
Geoposition geoposition = await geolocator.GetGeopositionAsync(
maximumAge: TimeSpan.FromMinutes(5),
timeout: TimeSpan.FromSeconds(10));
如果我理解正确,则maximumAge表示该位置可以缓存,最长可达5分钟。
我可以使用这个“内置缓存”,这样当我的应用程序启动时,我使用带有maximumAge的GetGeopositionAsync(...),例如2(min),只是为了获得新鲜的地理位置而不使用地理位置。
稍后在应用程序中,当我确实需要该位置时,我再次使用maximumAge调用GetGeopositionAsync(...),例如10(min)。 现在我应该得到缓存的值(如果它仍然基于maximumAge有效)?
这有意义吗? 如果这按预期工作,我不需要构建自己的地理位置缓存系统。
对,那是正确的。 MSDN博客文章( http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/11/30/acquiring-a-single-geoposition-in-windows-phone-8.aspx )解释了缓存使用MaximumAge
相当不错:
MaximumAge
定义了缓存的Geoposition
从操作开始的时间到现在的限制,以供应用程序使用。 默认情况下,请求不会返回缓存的Geoposition。 如果您的应用可以在短时间内使用缓存位置,则此参数也可以视为有效时间跨度。 该应用程序可以通过让Geolocator
处理缓存来简化其逻辑。例如,如果应用程序将
MaximumAge
设置为5分钟,则Geolocator可以使用Geoposition
满足该请求,该地理位置距请求开始时间的5分钟,只要该位置满足应用程序指定的精度要求即可。请注意,
Geolocator
将始终采用以下顺序步骤来满足请求:
请求已开始。
确定缓存的
Geoposition
是否满足年龄和期望的准确度,如果是,请立即返回。触发定位技术基于所需的精度。
在满足所需精度时返回
Geoposition
。达到超时后,如果没有可用的位置,则输出错误。 如果有可用的位置,假设框架遵循尽力而为模型,则此时可以返回精度低于应用程序所需的
Geoposition
。 应用程序可以决定信息是否有用或丢弃它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.