【问题标题】:iOS - Get locations within X miles of current zip code?iOS - 获取当前邮政编码 X 英里内的位置?
【发布时间】:2014-02-07 18:21:36
【问题描述】:

因此,当用户请求其当前位置 x 英里范围内的所有位置(按邮政编码提供)时,我希望能够显示位置列表(按邮政编码提供)。

有没有办法做到这一点:

  1. 直接在 mySQL 中? (即仅返回数据库中位于用户邮政编码 X 英里范围内的位置)。这比将所有位置返回到 iOS 并使用 MapKit 方法过滤掉 X 英里内的位置要高效得多。

【问题讨论】:

  • 看看here
  • 请查看@AdamSears 评论。这是个好方法。

标签: ios mapkit distance


【解决方案1】:

如果您在数据库中有 lat & lng,您可以使用简单的查询来查找特定距离内的位置。

【讨论】:

  • 您能否向我们展示一个简单的查询不必搜索整个数据库?英国有大约 120 万个邮政编码。
【解决方案2】:

一个非常非常简单的折衷方案:每个纬度等于 111.11 公里的距离。如果您正在寻找相距 x 英里的地方,则纬度差必须小于 x * (1.609 / 111.11)。因此,如果您从 (LAT, LONG) 开始,那么所有用户必须具有 LAT - x * (1.609 / 111.11)

有更好但更复杂的解决方案。

您不需要 MapKit。计算精确距离非常复杂,但对于小距离且精度不高的情况,有一个简单的方法。

每个纬度为 111.111 公里。每度经度为 111.111 * cos(纬度)公里,其中余弦的角度以度为单位。 (LAT, LONG) 到 (lat, long) 的距离约为

sqrt ((LAT - lat)^2 + ((LONG - long) * cos (LAT))^2)

【讨论】:

    猜你喜欢
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多