我有一个具有经度和纬度属性的核心数据数据库。有没有办法使用Core Location的getDistanceFrom:
方法来查找从GPS获得的CLLocation
的五个最近位置?我是否必须使用核心数据加载所有对象并通过它们解析,每个使用getDistanceFrom:
还是有更简单的方法?核心数据和核心位置
24
A
回答
28
你将有一个通过他们一个迭代;据我所知,没有其他办法可以做到这一点。
但是,当从核心数据获取项目时,可以通过使用边界框来提高效率 - 这将减少将要返回的对象的数量。
即喜欢的东西
float latMax = wantedLat + 1;
float latMin = wantedLat - 1;
float lngMax = wantedLng + 1;
float lngMin = wantedLng - 1;
NSPredicate *predicate = [NSPredicate
predicateWithFormat:@"lat > %f and lat < %f and lng > %f and lng < %f",
latMin, latMax, lngMin, lngMax];
虽然,这取决于你有多少数据,以及如何接近它的间隔,你将要使用不同数量比1!
山姆
PS另外,我还没有考虑到一个事实,即东经包装!
2
您无法使用CoreData查找最近的对象,但可能希望通过使用边界框来缩小查询范围。要找到最近的物体,您可能更愿意简单地使用纬度/长度的差异,这比计算实际距离快得多。
我有一个类似的问题:
+0
感谢您的链接。 – 2010-02-02 02:43:05
2
以下示例几乎就是您要查找的内容。 它使用SQLite函数来计算ORDER BY子句(Haversine公式)中的距离。 问题是这个例子不直接使用Core-Data,而是使用SQLite API。
相关问题
- 1. Iphone核心位置
- 2. 备份和恢复核心数据的SQLite(核心数据)
- 3. 设置与核心数据
- 4. 核心服务,核心基础和核心数据有什么区别?
- 5. 使用核心位置
- 6. iPhone核心位置startMonitoringSignificantLocationChanges
- 7. 核心位置帮助!
- 8. 核心位置返回00
- 9. 核心位置问题
- 10. PHP核心文件位置
- 11. GCD和核心数据
- 12. iPhone和核心数据
- 13. 核心数据,KVO和NSInternalInconsistencyException
- 14. 核心数据和关系
- 15. 核心数据和谓词
- 16. 核心数据,iCloud和Cloudkit
- 17. RestKit和核心数据
- 18. UIAlertView中和核心数据
- 19. 核心数据和阵列
- 20. 核心数据和MySQL
- 21. 核心数据和@unionOfSets
- 22. 的NSLog和核心数据
- 23. InAppSettingsKit和核心数据
- 24. 核心数据和并发
- 25. Dropbox,核心数据和JSON
- 26. 核心数据和TabViewController
- 27. 核心数据和NSDate
- 28. 核心数据和NSOperation
- 29. 核心数据和线程
- 30. 核心数据和布尔设置
看起来很有用的代码,谢谢。 – 2010-02-02 02:43:37
感谢你们 - 我在我的应用中使用了类似的东西。但在我看来,这两套< and >现在是错误的方式! – iPhoneDollaraire 2010-03-05 17:38:19
你说得对 - 哎呀! – deanWombourne 2010-03-06 09:41:09