php - 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;
解决方案
推荐阅读
- assembly - 确定执行 AVR 汇编语言代码需要多少时钟周期
- bash - 根据另一个目录中文件的匹配子字符串重命名一个目录中的所有文件
- python - 未检测到 MSO_CONNECT。获取幻灯片上的行数?
- codeigniter - CodeIgniter 出现获取数据库错误
- vba - 在 Excel 中合并文件
- java - Java 与 AWS Lambda 和 SDK v2
- boost-log - 使用 sink.set_filter 时发生 boost.log 错误
- c# - 如何计算 JArray 值项的平均值
- jboss - 当我们在 Wildfly 17 中配置 HTTPS 时,服务器没有启动
在管理界面下 - testng-dataprovider - Testng 测试被忽略