显示100英里内的餐馆

时间:2011-07-11 06:52:30

标签: php mysql

我有一个包含所有纬度和经度值的主邮政编码表tbl_zipcode。还有一张餐厅餐桌,餐厅列表带有邮政编码。

现在我想要显示距用户位置100英里范围内的餐馆,即会话用户。如何编写一个返回100英里范围内所有餐厅的功能?

任何帮助表示赞赏!!
感谢。

4 个答案:

答案 0 :(得分:2)

所以基本上你拥有用户和所有餐厅的经度和纬度..

检查半胱氨酸配方 这很有用:http://www.movable-type.co.uk/scripts/latlong.html

实现公式很简单

答案 1 :(得分:0)

确定您想要开始的100英里范围内的所有邮政编码(这是基于会话用户位置的当前邮政编码),并包含所有包含这些邮政编码的餐馆。

答案 2 :(得分:0)

您需要设置一种方法来计算用户与这些邮政编码的纬度之间的距离。

来源:http://www.movable-type.co.uk/scripts/latlong.html

答案 3 :(得分:0)

首先要获取当前用户邮政编码的纬度/经度值。

SELECT latitude,longitude FROM tbl_zipcode WHERE zipcode = <USER_ZIPCODE>

然后,您可以使用这些值来计算数据库中每个坐标对的距离,例如通过使用这个script(用PHP编写,所以不用浪费时间考虑Java函数)。

但是你可能想要考虑缓存,因为对于每个坐标对来说这是一个相当繁重的操作。也许您可以预先计算这些值并在每次新餐厅进入时更新数据库。