我想知道如何开始我的住宿网站的半径过滤器。例如,我想知道数据库中需要的字段以及计算半径所需的数据。我希望在寻找住宿时在我的搜索页面中实施此半径过滤器。我猜我需要网格坐标、经度和纬度。然后实现毕达哥拉斯定理来实际计算从一个位置到不同邮政编码的距离。
问问题
46 次
1 回答
0
您只需要数据库中位置的经度和纬度,然后需要将坐标传递到 SQL 查询中以计算距离,然后可以按距离排序,您可以选择显示最近的 x结果数。
像这样的东西应该是您的 SQL 查询的一个很好的起点。
$qry = "SELECT *,(((acos(sin((".$latitude."*pi()/180)) * sin((`Latitude`*pi()/180))+cos((".$latitude."*pi()/180)) * cos((`Latitude`*pi()/180)) * cos(((".$longitude."- `Longitude`)*pi()/180))))*180/pi())*60*1.1515) as distance
FROM `MyTable` WHERE distance >= ".$distance."
然后,您可以根据需要添加您的 ORDER BY 距离和 LIMIT。
于 2016-03-16T23:53:06.500 回答