您只需要使用以下查询。
例如,您输入的经度和纬度分别为37和-122(以度为单位)。您想搜索距当前给定纬度和经度25英里以内的用户。
SELECt item1, item2, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM geopreTable HAVINg distance < 25 ORDER BY distance LIMIT 0 , 20;
如果要以kms为单位搜索距离,则在上面的查询中将3959替换为6371。
您也可以这样做:
选择所有经度和纬度
然后计算每个记录的距离。
可以使用多个重定向来完成上述过程。
为了优化查询,您可以使用存储过程。
而这也可以帮助你。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)