好吧,我正在建立一个外卖取景器,它将在设定的英国邮政编码范围内找到外卖。用户将他/她的邮编放在输入框中并点击提交,网站就会在用户附近搜索外卖。但问题在于,这种搜索是基于个人外卖交货距离。因此,如果外卖店的送货距离为12英里,而人员邮政编码在外卖店12英里内,则会在结果中显示。外卖餐厅查找帮助在php
到目前为止,我有英国邮政编码数据库与朗和纬度坐标,也外卖数据库表持有外卖自己的邮政编码和其交付距离,但不是外卖邮递区的长和纬度值。
我所要求的并不是代码,而是如何做到这一点的逻辑帮助。
我有以下查询,将找到一个给定的长,纬度,但林不知道一套半径范围内的所有邮政编码如果在英里,如果它是最快的则可能是:
SELECT * , 6371 * ACos(Cos(RADIANS(latitude)) * Cos(RADIANS(56.0062)) * Cos( RADIANS(- 3.78189) - RADIANS(longitude)) + Sin(RADIANS(latitude)) * Sin(RADIANS(56.0062))) AS Distance
FROM postcodes
HAVING Distance <= '10'
ORDER BY Distance
LIMIT 3720 , 30
它以公里为单位。改变'6371'到'3963.1676'获得里程。 (这是地球的半径。) – 2012-01-16 23:56:18
谢谢,那就清除一个问题。 – user794846 2012-01-17 00:05:00