在搜索表单中包含距离

时间:2014-01-14 13:30:35

标签: php symfony distance

我想在网站上实现远距离搜索。 例如,生活城市中的用户必须能够找到所有生活在100或200公里范围内的用户。

我的数据库中有一个表,用于存储所有城市及其坐标。

我想创建另一个表来存储所有城市之间的距离,但我的数据库包含36,000个城市,它可能会创建很多记录......

如果知道我的项目将使用Symfony和Doctrine开发,我怎样才能更简单地进行搜索?

事先谢谢

2 个答案:

答案 0 :(得分:2)

您可以在此处使用正确的答案来确定坐标之间的距离。

Measuring the distance between two coordinates in PHP

答案 1 :(得分:1)

出于性能原因,您需要使用geospatial index来有效地查询此类数据库。例如,MongoDB有一个feature

如果性能不是问题,您可以简单地将位置存储在关系数据库表中并计算SQL中的距离。有关此解决方案的一些信息,请参阅此问题:Geo-Search (Distance) in PHP/MySQL (Performance)