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

时间:2015-04-26 08:31:56

标签: java google-maps google-maps-api-3 database-design

我有餐馆的数据库及其确切的地址,现在当用户从他的移动设备搜索餐馆时,我想以距他当前位置的距离的顺序向他展示餐馆,以便非常接近的餐厅在结果。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用所谓的Haversine formula

以下示例适用于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是您的点的坐标,而lat / lng是您的表格列。以上将列出5 nm范围内的位置。将3959替换为6371以更改为公里。

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

您可以添加order by子句,按distance订购结果。