如何按距离从数据库中排序 php 结果

Posted

技术标签:

【中文标题】如何按距离从数据库中排序 php 结果【英文标题】:How to order php results from database by distance 【发布时间】:2011-10-10 18:46:56 【问题描述】:

我有一个使用 php 搜索和显示的广告数据库。用户在搜索期间输入他们的邮政编码,然后执行查询。当结果页面返回给用户时,它会显示广告项目与其邮政编码的距离。

我需要知道的是如何按距离对结果进行排序。我可以通过对查询进行排序来对价格结果进行排序,但是因为距离是在 php 页面上计算的,并且对于每个用户都不同,所以我不知道如何排序。

使用网格和毕达哥拉斯定理计算距离。

不确定什么代码有用。如果你想看到任何只是让我知道。

谢谢

【问题讨论】:

是否可以提供有关表结构的更多信息以及基于什么?您正在计算距离,将有助于给出结果。 【参考方案1】:

不要重新发明瘪胎。您需要此任务的半正弦地理距离公式。看这里。

mysql Great Circle Distance (Haversine formula)

一旦确定了距离,就可以轻松地按距离正确排序并限制搜索以提高效率。看这里。

Geolocation distance SQL from a cities table

【讨论】:

感谢您的回答。今天下午我会看看实施。干杯

以上是关于如何按距离从数据库中排序 php 结果的主要内容,如果未能解决你的问题,请参考以下文章

按计算距离对 MySQL 结果排序(距离未存储在 DB 中)

oracle数据库中 如果按商家的距离排序?

按距离排序 Facebook Places 结果

按邮政编码距离升序计算和排序用户的最快方式(也是最优化的)

如何从按对象创建日期排序的核心数据中获取结果?

如何从最小索引到最大索引对 SQL 结果进行排序?