怪我咯2017-04-11 10:05:581楼
/**
* 根据一个给定经纬度的点,进行附近地点查询
* 获取周围坐标
* @param double $lng
* @param double $lat
* @param real $distance
* @return multitype:multitype:number
*/
public function returnSquarePoint($lng, $lat,$distance = 0.5)
{
$earthRadius = 6378138;
$dlng = 2 * asin(sin($distance / (2 * $earthRadius)) / cos(deg2rad($lat)));
$dlng = rad2deg($dlng);
$dlat = $distance/$earthRadius;
$dlat = rad2deg($dlat);
return array(
'left-top'=>array('lat'=>$lat + $dlat,'lng'=>$lng-$dlng),
'right-top'=>array('lat'=>$lat + $dlat, 'lng'=>$lng + $dlng),
'left-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng - $dlng),
'right-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng + $dlng)
);
}
传个坐标进去范围范围
$wherefind['lat']['between']=array($around['right-bottom']['lat'],$around['left-top']['lat']);
$wherefind['lng']['between']=array($around['left-top']['lng'],$around['right-bottom']['lng']);
然后用范围搜索就可以了