想从一个位置计算半径
Want to calculate radius from one position
我想知道如何开始我的住宿地点半径过滤器。例如,我想知道数据库中需要的字段以及计算半径所需的数据。我希望在寻找住宿时在我的搜索页面中实施此半径过滤器。我猜我需要网格坐标、经度和纬度。然后实施毕达哥拉斯定理来实际计算从一个位置到不同邮政编码的距离。
您只需要数据库中位置的经度和纬度,然后您需要将坐标传递到 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。
我想知道如何开始我的住宿地点半径过滤器。例如,我想知道数据库中需要的字段以及计算半径所需的数据。我希望在寻找住宿时在我的搜索页面中实施此半径过滤器。我猜我需要网格坐标、经度和纬度。然后实施毕达哥拉斯定理来实际计算从一个位置到不同邮政编码的距离。
您只需要数据库中位置的经度和纬度,然后您需要将坐标传递到 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。