PHP实现通过经纬度计算距离和查附近店门
单位:公里
laravel查附近店门
DB::table('shops')->selectRaw('id, address, lat, lng, round((
6370.996 * acos ( cos ( radians( ? ) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians( ? ) ) + sin ( radians( ? ) ) * sin( radians( lat ) ) ) ),1) AS distance', [$lat, $lng, $lat])
->orderBy('distance')->first();
PHP实现通过经纬度计算距离
$lng1 = 102.76;
$lat1 = 25.00;
$lat2 = auth()->user()->lat;
$lng2 = auth()->user()->lng;
//将角度转为狐度
$radLat1 = deg2rad($lat1);
$radLat2 = deg2rad($lat2);
$radLng1 = deg2rad($lng1);
$radLng2 = deg2rad($lng2);
$a=$radLat1-$radLat2;//两纬度之差,纬度<90
$b=$radLng1-$radLng2;//两经度之差纬度<180
$s= 2*asin(sqrt(pow(sin($a/2),2)+cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))*6378.137;
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: