这两天项目中也是需要解决一个根据经纬度和公里数找出附近楼盘的信息.
有点类似附近的人. ?
处理上也不是很棘手,针对需求.大致解决办法为.获取现在楼盘坐标.然后获取目标楼盘经纬度,查询距离.如果距离小于前端传来的距离则为在范围.反之不在.
后台使用的为FastAdmin.这个框架后台也是提供了可以获取地理位置的插件.直接开启就可以使用了.
这样就有了确切的地理位置.
然后调用封装好的函数.这个函数计算两个位置的距离.返回的是公里数.函数也贴在下面
需要传入的参数为现在所处经度,现在所处纬度,目标经度,目标纬度.
function getDistance($lat1, $lng1, $lat2, $lng2){
//将角度转为狐度
$radLat1=deg2rad($lat1);//deg2rad()函数将角度转换为弧度
$radLat2=deg2rad($lat2);
$radLng1=deg2rad($lng1);
$radLng2=deg2rad($lng2);
$a=$radLat1-$radLat2;
$b=$radLng1-$radLng2;
$s=2*asin(sqrt(pow(sin($a/2),2)+cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))*6378.137;
return $s;
}
然后判断是否在前端所传来的范围之内.然后将处理好的数据扔给前台就可以了. ?