最近在做一个类似于美团的功能,查询周边的商家,记录一下查询方法。
<?php
$latitude = $_GET['y']; //当前坐标y
$longitude = $_GET['x']; //当前坐标x
$distance = 5; //5公里以内的信息,这里的5公里为半径。
// 此查询无排序
$sql = "select * from weixin_map where sqrt( ( ((".$longitude."-Longitude)*PI()*12656*cos(((".$latitude."+Latitude)/2)*PI()/180)/180) * ((".$longitude."-Longitude)*PI()*12656*cos (((".$latitude."+Latitude)/2)*PI()/180)/180) ) + ( ((".$latitude."-Latitude)*PI()*12656/180) * ((".$latitude."-Latitude)*PI()*12656/180) ) )/2 < ".$distance;
// 加入排序,从最近到最近排序。
$sql = "select *, sqrt( ( ((".$longitude."-Longitude)*PI()*12656*cos(((".$latitude."+Latitude)/2)*PI()/180)/180) * ((".$longitude."-Longitude)*PI()*12656*cos (((".$latitude."+Latitude)/2)*PI()/180)/180) ) + ( ((".$latitude."-Latitude)*PI()*12656/180) * ((".$latitude."-Latitude)*PI()*12656/180) ) )/2 as dis
from weixin_map group by dis asc having dis <".$distance;