首页 > 解决方案 > Laravel 经纬度最近的城市

问题描述

如何在PHP Laravel中从经纬度查找最近的城市(用户位置 [lat, long])?

表结构:位置:'lon,lat'

用户位置:“经度,纬度”

$loc = explode(',', $request->get('location'));

$results = Agent::select(Agent::raw('SELECT id, ( 3959 * acos( cos( radians(' . $loc[0] . ') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(' . $loc[1] . ') ) + sin( radians(' . $loc[0] .') ) * sin( radians(lat) ) ) ) AS distance FROM articles HAVING distance < ' . 200 . ' ORDER BY distance') )->get();
$agents =  \App\Agent::
where('name','like','%'.$request->get('text').'%')
->orWhere('manager','like','%'.$request->get('text').'%')
->orWhere('address','like','%'.$request->get('text').'%')
->orWhere('phone','like','%'.$request->get('text').'%')->get();
foreach ($agents as $agent) {
    $agent->location = explode(',', $agent->location);
}
return $agents;

标签: phpsqllaravelgeolocation

解决方案


推荐阅读