iOS - 获取当前邮政编码 X 英里内的位置?

Posted

技术标签:

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

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

有没有办法做到这一点:

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

【问题讨论】:

看看here! 请查看@AdamSears 评论。这是个好方法。 【参考方案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)

【讨论】:

以上是关于iOS - 获取当前邮政编码 X 英里内的位置?的主要内容,如果未能解决你的问题,请参考以下文章

计算所有邮政编码都在 x 英里内的最小邮政编码集的函数

如何显示 2 英里内的位置?

mySQL 在 y 范围内选择 x 公里/英里内的邮政编码

如何返回邮政编码列表的## 英里半径内的所有实例

Mongo 获取指定位置 10 英里内的所有文件

地理位置:按邻近度过滤