我有一个网站,这是Facebook为老年人在英国各地寻找职业,然而,所有者已要求邮政编码部分搜索到位,这和一个距离选择,这样他们就可以搜索就业机会,比方说5 10 15英里距离原来的邮政编码。我将邮政编码和long和latitude存储到profile表中。
userid int(11)是NULL
profile_pic文本是NULL
资格文本是空
教育int(11)是NULL
患者int(11)是NULL
carer int(11)是NULL
电话varchar(50)是空
mobile varchar(50)是空
性别int(11)是空
profile_areas int(11)是NULL
类型int(11)是NULL
care_cats int(11)否
lng varchar(20)否
lat varchar(20)否
我的问题是,我如何创建这样一个搜索,通过第三方搜索,我需要给出距离,并显示匹配距离的轮廓
发布于 2011-09-28 20:44:17
下面的SQL语句将查找距离37,-122坐标25英里范围内最近的20个位置。它根据该行的纬度/经度和目标纬度/经度计算距离,然后只请求距离值小于25的行,按距离对整个查询进行排序,并将其限制为20个结果。要按公里而不是英里进行搜索,请将3959替换为6371。
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;来自:http://code.google.com/apis/maps/articles/phpsqlsearch_v3.html
https://stackoverflow.com/questions/7582050
复制相似问题