thinkphp实现附近范围的查询,如附近的人和附近团购之类。首先,要定位用户的经纬度。客户端定位的方法可以使用地图api或者用html5浏览器定位(比较不稳定而且不会太精确)。然后,将当前经纬度,和需要搜索的距离范围,计算一个经纬度范围,这个范围就是“附近”。要有mysql数据库的支持,效果图:
代码如下 | 复制代码 |
/* 参数说明: $lng 经度 $lat 纬度 $distance 周边半径 默认是500米(0.5Km) */ function returnSquarePoint($lng, $lat,$distance = 0.5) |
在文件中调用并组成条件:
代码如下 | 复制代码 |
$array = $this->returnSquarePoint($latitude, $longitude, 5); |
生成Thinkphp查询条件
代码如下 | 复制代码 |
$map = array( "latitude" => array(array('EGT',$array['right-bottom']['lat']),array('ELT',$array['left-top']['lat']),'or'), "longitude" => array(array('EGT',$array['left-top']['lng']),array('ELT',$array['right-bottom']['lng']),'or'), "status" => array("eq",1), ); |
生成sql:
查询结果:
时间: 2024-11-13 06:58:05