C# Windows Phone 8地理定位器缓存位置
在Windows Phone应用程序中,我得到如下地理位置:C# Windows Phone 8地理定位器缓存位置,c#,caching,windows-phone-8,geolocation,C#,Caching,Windows Phone 8,Geolocation,在Windows Phone应用程序中,我得到如下地理位置: Geoposition geoposition = await geolocator.GetGeopositionAsync( maximumAge: TimeSpan.FromMinutes(5), timeout: TimeSpan.FromSeconds(10)); 如果我理解正确,maximumAge意味着该位置可以缓存,最长5分钟 我可以使用这种“内置缓存”吗?这样,当我的应
Geoposition geoposition = await geolocator.GetGeopositionAsync(
maximumAge: TimeSpan.FromMinutes(5),
timeout: TimeSpan.FromSeconds(10));
如果我理解正确,maximumAge意味着该位置可以缓存,最长5分钟
我可以使用这种“内置缓存”吗?这样,当我的应用程序启动时,我可以使用GetGeopositionAsync(…)和maximumAge(例如2(min))来获取新的Geopositin,而不需要实际使用geoposition
稍后在应用程序中,当我实际需要位置时,我再次调用GetGeopositionAsync(…),最大值为10(min)。现在我应该获取缓存的值(如果基于maximumAge它仍然有效)
这有什么意义吗?如果这像我预期的那样工作,我不需要构建自己的地理位置缓存系统。是的,这是正确的。一篇MSDN博客文章()解释了使用
MaximumAge
的缓存非常好:
MaximumAge
定义了缓存的地理位置的时间限制,
从操作开始时起,应用程序将使用该操作。通过
默认情况下,请求不会返回缓存的地理位置。如果你的应用程序
可以在短时间内使用缓存位置,此参数
也可以看作是有效期的时间跨度。该应用程序可以简化其功能
通过让地理定位器
处理缓存来实现逻辑
例如,如果应用程序将MaximumAge
设置为5分钟,则地理定位器
可以使用一个最旧的地理位置来满足该请求
从请求开始算起的分钟数,只要该位置
符合应用程序规定的精度要求
请注意,地理定位器
将始终采用以下顺序
满足请求的步骤:
请求已启动
确定缓存的地理位置是否满足年龄和所需精度,如果满足,立即返回
基于期望精度的触发定位技术
当满足所需精度时,返回一个地理位置
当达到超时时,如果没有位置可用,则出错。如果有职位,考虑到框架
遵循尽力而为的模型,此地理位置的精确度较低
此时可以返回应用程序所需的数据。该应用程序可以
决定该信息是有用的还是废弃的
首先,你为什么要缓存位置,你担心性能吗?是的,基本上只是为了保持时间来降低用户位置。