IPhone地理标记数据(SQLite或CoreData)

IPhone地理标记数据(SQLite或CoreData),iphone,geospatial,Iphone,Geospatial,我将要构建一个应用程序,其中包含一个位置数据库(lon/lat),我将要构建数据模型。 实际上,这个应用程序非常简单,我想要的就是能够获取用户周围的所有位置(比如半径为30英里) 使用SQLite是否更好(是否有任何地理空间扩展) 数据库中大约有5000个位置,我想知道在不影响性能的情况下,在哪里可以查询数据库。我会使用CoreData来解决性能问题。CoreData在执行单个操作(如读取或向存储区插入记录)时都很好,但在执行批量操作时失败,因为您必须迭代所有对象以执行更新或删除操作 另一方面,

我将要构建一个应用程序,其中包含一个位置数据库(lon/lat),我将要构建数据模型。 实际上,这个应用程序非常简单,我想要的就是能够获取用户周围的所有位置(比如半径为30英里)

使用SQLite是否更好(是否有任何地理空间扩展)


数据库中大约有5000个位置,我想知道在不影响性能的情况下,在哪里可以查询数据库。

我会使用CoreData来解决性能问题。CoreData在执行单个操作(如读取或向存储区插入记录)时都很好,但在执行批量操作时失败,因为您必须迭代所有对象以执行更新或删除操作

另一方面,SQLite在批量操作中比CoreData慢一点,但速度更快

我的应用程序使用的CoreData具有8k+条目,我没有问题。我遇到的唯一问题是在执行批量操作时,我更新了我的应用程序,在需要批量更新的数据上使用SQLite


您还可以使用CoreData访问SQLite。

Hmmm。听起来很有趣。如何使用CoreData访问SQLite?另一方面,我有点困惑,我如何能够在没有实际获取许多对象并在内存中进行距离比较的情况下,获取核心数据并检索另一个位置附近的所有位置?您能给我指出一个解决方案吗?创建CoreData是为了将数据存储作为对象处理,因此您甚至可以使用XML并将其用作存储,您必须使用NSPersistentStoreCoordinator并将存储类型设置为NSSQLiteStoreType。无论如何,我错过了您希望通过radius获取的部分,如果是这样的话,请使用SQLite,因为您不能在CoreData中使用聚合函数。是的,如果您使用CoreData,您将不得不将对象提取到NSMutableArray中并从那里提取它们,这听起来不是一个好主意。谢谢您的帮助。我想我应该使用SQLite,因为我想做一些半径搜索。