Windows Phone 8地理定位器缓存位置
本文关键字:缓存 位置 定位器 Phone 8地 Windows | 更新日期: 2023-09-27 18:05:59
在Windows Phone应用程序中,我得到这样的地理位置:
Geoposition geoposition = await geolocator.GetGeopositionAsync(
maximumAge: TimeSpan.FromMinutes(5),
timeout: TimeSpan.FromSeconds(10));
如果我理解正确的话,maximumAge意味着这个位置可以被缓存,并且最多5分钟。
我可以使用这个"内置缓存",这样当我的应用程序启动时,我使用getgeopotionasync(…)与maximumAge例如2 (min),只是为了获得新的地理位置,而不是实际使用地理位置。
后来在应用程序中,当我真正需要的位置,我再次调用getgepositionasync(…)与maximumAge例如10(分钟)。现在我应该得到缓存的值(如果它仍然有效基于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
缓存时间的限制,从操作开始的时间,它被应用程序使用默认情况下,请求不会返回缓存的地理位置。如果你的应用是否可以在短时间内使用缓存位置,此参数也可以看作是有效期的时间跨度。该应用程序可以简化其逻辑,让Geolocator
处理缓存。例如,如果应用程序设置
MaximumAge
为5分钟,则地理定位器可以满足这一要求与Geoposition
一样古老的5从请求开始的几分钟后,只要那个位置满足应用程序指定的精度要求。请注意,
Geolocator
将始终采用以下顺序满足请求的步骤:
请求启动
确定缓存的
Geoposition
是否满足年龄和期望的精度,如果满足,立即返回它。基于所需精度触发定位技术。
当满足所需精度时返回
Geoposition
。当达到超时时,如果还没有可用的位置,则错误输出。如果有职位空缺,考虑到框架遵循最佳努力模型,此
Geoposition
具有较低的精度比期望的应用程序可以在这个时候返回。应用程序可以