我有一个包含所有纬度和经度值的主邮政编码表tbl_zipcode
。还有一张餐厅餐桌,餐厅列表带有邮政编码。
现在我想要显示距用户位置100英里范围内的餐馆,即会话用户。如何编写一个返回100英里范围内所有餐厅的功能?
任何帮助表示赞赏!!
感谢。
答案 0 :(得分:2)
答案 1 :(得分:0)
确定您想要开始的100英里范围内的所有邮政编码(这是基于会话用户位置的当前邮政编码),并包含所有包含这些邮政编码的餐馆。
答案 2 :(得分:0)
您需要设置一种方法来计算用户与这些邮政编码的纬度之间的距离。
答案 3 :(得分:0)
首先要获取当前用户邮政编码的纬度/经度值。
SELECT latitude,longitude FROM tbl_zipcode WHERE zipcode = <USER_ZIPCODE>
然后,您可以使用这些值来计算数据库中每个坐标对的距离,例如通过使用这个script(用PHP编写,所以不用浪费时间考虑Java函数)。
但是你可能想要考虑缓存,因为对于每个坐标对来说这是一个相当繁重的操作。也许您可以预先计算这些值并在每次新餐厅进入时更新数据库。