根据当前地理位置搜索餐厅



我有餐厅的数据库,其中包含确切地址,现在当用户从他的移动设备搜索餐厅时,我想按照与他当前位置的距离顺序向他显示餐厅,以便非常接近的餐厅在结果中排在第一位。最好的方法是什么?

您可以使用所谓的哈弗森公式。

下面的例子是针对PHP/MySQL的,但查询仍然是你需要的。

$sql = "SELECT *, ( 3959 * acos( cos( radians(" . $lat . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $lng . ") ) + sin( radians(" . $lat . ") ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5";

其中$lat$lng是点的坐标,纬度/液化天然气是表列。以上将列出 5 nm 范围内的位置。将3959替换为6371以更改为公里。

此链接可能很有用: https://developers.google.com/maps/articles/phpsqlsearch_v3

您可以添加 order by 子句以按 distance 对结果进行排序。

最新更新