Ios 是否将核心位置数据保存到核心数据?

Ios 是否将核心位置数据保存到核心数据?,ios,core-data,core-location,Ios,Core Data,Core Location,我正在做一些关于使用核心位置的研究。 我想通过核心数据保存位置信息。 到目前为止,我似乎可以简单地保存位置信息(这基本上是最小的位置信息)。 此CLLocation是否是以后恢复数据并确定用户是否在该特定位置/附近所需的全部内容?由于CLLocation符合NSCoding,因此可以简单地创建具有“可转换”类型的核心数据属性。然后,您可以将CLLocation对象分配给该属性并将其读回 但是,您将无法使用此值对数据进行筛选或排序——例如,如果您希望查找具有特定区域中某个位置的所有实例。为此,您需

我正在做一些关于使用核心位置的研究。 我想通过核心数据保存位置信息。 到目前为止,我似乎可以简单地保存位置信息(这基本上是最小的位置信息)。
此CLLocation是否是以后恢复数据并确定用户是否在该特定位置/附近所需的全部内容?

由于
CLLocation
符合
NSCoding
,因此可以简单地创建具有“可转换”类型的核心数据属性。然后,您可以将
CLLocation
对象分配给该属性并将其读回


但是,您将无法使用此值对数据进行筛选或排序——例如,如果您希望查找具有特定区域中某个位置的所有实例。为此,您需要添加属性来分别表示
CLLocation
纬度和经度值,而不是
CLLocation
本身。您可能还需要高度和/或精度信息,具体取决于您希望执行的获取类型。

由于
CLLocation
符合
NSCoding
,因此可以简单地创建具有“可转换”类型的核心数据属性。然后,您可以将
CLLocation
对象分配给该属性并将其读回


但是,您将无法使用此值对数据进行筛选或排序——例如,如果您希望查找具有特定区域中某个位置的所有实例。为此,您需要添加属性来分别表示
CLLocation
纬度和经度值,而不是
CLLocation
本身。您可能还需要高度和/或精度信息,具体取决于您希望执行的抓取类型。

我通过将纬度、经度和高程信息保存为双倍(NSNumber)来实现这一点在CoreData数据库中的航路点记录中,然后在我从数据库中加载它们时使用它们创建CLLocationCoordinate2D点

您需要在输入的过程中进行一些过滤,以验证您是否有一个好的点(水平精度低于阈值-高于0,因为它们可以用负值标记坏点)。我还看到了有问题的无序数据,因此我跟踪加载的最新值的时间戳,并丢弃在该值之前有时间戳的任何新点


在处理后台模式和LocationManager设置时,需要解决一些问题,但将位置捕获到CoreData中的结构可以很好地工作-我在数小时内捕获了超过20000个航路点的数据库轨迹,没有任何问题。

我通过保存纬度、经度、,以及CoreData数据库中航路点记录中的双倍高程信息(NSNumbers),然后在我从数据库加载时使用它们创建CLLocationCoordinate2D点

您需要在输入的过程中进行一些过滤,以验证您是否有一个好的点(水平精度低于阈值-高于0,因为它们可以用负值标记坏点)。我还看到了有问题的无序数据,因此我跟踪加载的最新值的时间戳,并丢弃在该值之前有时间戳的任何新点


在处理后台模式和LocationManager设置时需要解决一些问题,但将位置捕获到CoreData中的结构可以很好地工作-我在几个小时内捕获了超过20000个航路点的数据库轨迹,没有任何问题。

什么是航路点记录?这是您创建的自定义对象吗?是的,作为徒步旅行应用程序的一部分。它类似于GPS系统中定义的航路点,并添加了一些信息。CoreData允许我将它们链接到小径、公园等,以及徒步旅行过程中的任何媒体捕获。什么是航路点记录?这是您创建的自定义对象吗?是的,作为徒步旅行应用程序的一部分。它类似于GPS系统中定义的航路点,并添加了一些信息。CoreData允许我将它们链接到小径、公园等,以及徒步旅行过程中的任何媒体捕获。