我对Swift中的CoreLocation有疑问。我目前正在运行一个应用程序,每秒使用CoreLocation拉取用户的位置。这很棒,但是它需要大量的内存和电池才能运行(特别是因为我的用户希望全天都使用该应用程序)。我想知道是否有办法从过去(x)秒拉出位置数据,以绘制类似地图的地图并追溯处理信息。
例如:如果自上次刷新后已经过3秒......在“刷新”按钮 -
上var lastLocations = [(<+37.33233141,-122.03121860> +/- 5.00m (speed 0.00 mps / course -1.00) @ 7/26/16, 3:11:20 PM Mountain Daylight Time),(<+37.33233141,-122.03121860> +/- 5.00m (speed 0.00 mps / course -1.00) @ 7/26/16, 3:11:20 PM Mountain Daylight Time),(<+37.33233141,-122.03121860> +/- 5.00m (speed 0.00 mps / course -1.00) @ 7/26/16, 3:11:20 PM Mountain Daylight Time)]
有人知道是否有可能从CoreLocation追溯获取信息?
答案 0 :(得分:0)
核心位置不会为您提供历史记录。如果您想获得历史信息,您需要自己收集和维护。
您的内存问题可以通过将数据保存到文件(可能是Core Data,也许是其他内容)来解决,这样您就不必将其全部保存在内存中。电池问题取决于您的应用正是在做什么。实际上,长时间每秒获取一次核心位置更新是一种非常好的快速耗尽电池的方法。获取准确的位置信息需要电力,获得位置的次数越多,您使用的电量就越多。
如果您确实经常需要更新,那么您会坚持使用它。但是,通过使用其他方法(例如,核心位置中的“重要”位置更新选项),您可以以更低频率的位置更新为代价获得更低的功率要求。