使用 Core Data 存储位置数据

Posted

技术标签:

【中文标题】使用 Core Data 存储位置数据【英文标题】:Store location data using Core Data 【发布时间】:2010-12-12 17:43:49 【问题描述】:

我想知道在 Core Data 数据库中存储 CLLocation 对象数组(形成路由或路径)时推荐使用哪种方法?序列化是一种好方法还是建议将 CLLocation 对象存储在与“路由”模型相关的单独模型中?

序列化位置数组的问题在于您无法轻松访问各个位置。另一方面,将路线/路径的每个位置作为单独的条目存储在数据库中似乎会导致数据库变大,并可能导致性能下降。

我很想听听你的建议。

巴特

【问题讨论】:

【参考方案1】:

对于我编写的应用程序之一,我已将它们存储到一个字符串中,如 Google 地图 API 中所述。

http://code.google.com/apis/maps/documentation/directions/

Polyline algorithm

【讨论】:

谢谢查尔斯。我一定会看看这个。 问题是,如果将位置数据存储为字符串,则无法正确查询位置数据。我目前的解决方案是将位置数据存储为二进制数据并存储代理以供搜索。【参考方案2】:

最适合我需求的解决方案是通过分别存储纬度和经度来将位置数据存储为双精度数据。结果,搜索稍微复杂一些,但这种方法似乎比我迄今为止遇到的任何其他方法都要好。

我必须注意,有报告称开发人员在检索存储数据时遇到了这种方法的问题,即准确性(有效数字)问题。 This thread 就是这样一个例子。

【讨论】:

以上是关于使用 Core Data 存储位置数据的主要内容,如果未能解决你的问题,请参考以下文章

当并非所有对象都将被存储时,使用 Core Data 作为模型

iphone数据存储之-- Core Data的使用

是否可以使用RestKit将本地数据存储在Core data中而无需网络通信

我的数据库数据在哪里(Core Data,iOS)

如何使用 Core Data 和 iOS 5 存储指南?

如何使用 Restkit 和 Core Data 存储对象和种子预加载数据