我想知道如何从住宿网站的半径过滤器开始。例如,我想知道我的数据库中需要的字段以及我需要的数据来计算半径。我希望在寻找住宿时在我的搜索页面中实现此半径滤镜。我猜我需要网格坐标,经度和纬度。然后实施毕达哥拉斯定理来实际计算从一个位置到不同邮政编码的距离。
答案 0 :(得分: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。