Iphone 核心位置-回退、位置缓存和备选方案
我有几个关于核心位置的问题 1) 如果用户拒绝我的应用程序使用核心位置的权限,或者由于某种原因核心位置不可用,是否存在回退?(例如,设备区域设置?) 2) 我可以缓存设备的位置以备下次使用吗?核心位置本身能做到这一点吗 3) 我真的需要在仲春季节在用户区域的日落时间,一旦我有了设备的纬度和经度,我就有一个功能可以做到这一点。也许我可以根据地点对时间做个假设?(例如:在美国,假设约为晚上7:00。) 编辑: 我真的在为一个应用程序计算用户区的日落。与地图无关。我正在考虑以下一系列事件:Iphone 核心位置-回退、位置缓存和备选方案,iphone,core-location,ipod,Iphone,Core Location,Ipod,我有几个关于核心位置的问题 1) 如果用户拒绝我的应用程序使用核心位置的权限,或者由于某种原因核心位置不可用,是否存在回退?(例如,设备区域设置?) 2) 我可以缓存设备的位置以备下次使用吗?核心位置本身能做到这一点吗 3) 我真的需要在仲春季节在用户区域的日落时间,一旦我有了设备的纬度和经度,我就有一个功能可以做到这一点。也许我可以根据地点对时间做个假设?(例如:在美国,假设约为晚上7:00。) 编辑: 我真的在为一个应用程序计算用户区的日落。与地图无关。我正在考虑以下一系列事件: 检查核心
- 检查核心位置是否可用。如果是,请使用它并将其存储在NSUserPreferences中。如果核心位置不可用,请转至备用
- 检查存储位置。如果储存了,就使用它。如果没有,请继续
- 检查用户选择的时间
[NSTimeZone localTimeZone]
1) 严格地说,如果用户不允许使用CoreLocation,或者如果已授予权限但CoreLocation不可用,则没有其他方法可以将用户的位置作为纬度、经度对获取。在所有情况下,使用区域设置可能都不起作用。首先,它只会给你一个近似值,这可能离现实太远了。然而,这取决于你判断这个近似值是否适合你的应用程序。此外,有些用户使用的语言环境与他们所在国家的语言环境不同。而且,您不能保证出国旅行的人每次都会调整日期/时间
2) 默认情况下,Core Location缓存从GPS装置检索到的最后一个位置。但是,对于出国旅行的人来说,此缓存位置肯定是错误的(即使对于仅旅行几英里的人来说也是如此),通常,您应该放弃缓存值,并在每次对用户进行本地化。我知道,对于在国内旅行的人来说,这(通常)不会造成很大的问题。但这取决于国家:在意大利境内旅行不会改变时间,但在美国各地旅行可能会改变时间长达3小时
3) 我建议尝试使用核心位置,如果出现问题,只需让用户输入他/她的本地时间或位置(城市应该足以满足您的需要)。如果选择询问用户的位置,则可以获得相应的纬度/经度对,但这将需要一个工作的网络连接