gpt4 book ai didi

iPhone地理半径搜索;使用核心数据还是 SQLite?

转载 作者:IT王子 更新时间:2023-10-29 06:27:48 25 4
gpt4 key购买 nike

我正在编写一个具有 ca.数据库中有 7000 家欧洲餐馆,我想向用户显示最近的餐馆列表,例如,所有这些餐馆都在用户 5 公里的半径范围内。

我可以在服务器上进行搜索,但它需要互联网。是否可以将数据保存在iPhone上并查询数据库?我在核心数据或 iPhone 的 SQLite 中找不到类似的引用资料。

我真的需要用毕达哥拉斯之类的东西自己编程,并在每次查询时计算到每家餐厅的距离吗?还是有别的办法?

[更新] 我想像在服务器上那样使用它(但要在 iPhone 上使用):SELECT * FROM restaurants WHERE ST_Distance_Sphere(geo, ST_GeomFromText(POINT(55.98767 57.12345), -1)) < 5000

我希望用户即使没有互联网连接也能找到一家餐馆,例如当您在国外时。

最佳答案

阅读纬度和经度计算。纬度和经度本身就是表示为球面上的弧的距离。如果您有一个由纬度和经度表示的位置数据库,那么您可以执行提取以仅查找落在用户当前位置的南北几度纬度和东西几度经度范围内的记录。

所以你最终会得到一个类似于(伪代码)的谓词:

latitude >= (currentLatitude-aFewMinutesOfArc)
AND
latitude <= (currentLatitude+aFewMinutesOfArc)
AND
longitude >= (currentLongitude-aFewMinutesOfArc)
AND
longitude >= (currentLongitude+aFewMinutesOfArc)

...这将创建一个逻辑框,它将返回落在框内的所有餐厅记录。然后,如果您需要计算精确距离,则只需对您拥有的 7,000 条记录中的少数记录执行计算。

我建议继续阅读 Location Services因为它提供了很多处理位置计算的工具。

至于使用纯SQL还是Core Data,看这个previous answer on the subject.简而言之,如果您已经了解 C SQL api,并且您的数据简单、大且静态,那么 SQL 是一个不错的选择。如果您可以花时间学习 Core Data,并且您的数据是复杂且动态的,那么无论数据大小如何,Core Data 都是更好的选择。

关于iPhone地理半径搜索;使用核心数据还是 SQLite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6691051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com