TP5查询最近景区
Posted 去糖不加冰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TP5查询最近景区相关的知识,希望对你有一定的参考价值。
根据手机端传过来的经纬度坐标值,通过查询mysql数据库计算出距离每个景区的公里数,然后通过having取出1000公里以内的,order by 排正序再使用limit取出第一个,就是距离最近的那个景区了。
/*
根据经纬度坐标获取最近的景区
*/
public function getAeraMessage()
$lng = input('longitude');//经度坐标
$lat = input('latitude');//纬度坐标
if(empty($lng) || empty($lat))
echo json_encode(['stat'=>0,'err'=>'缺少参数']);
exit();
$message = Db::name('scenic_area')
->field('id as scenic_id,scenic_name,scenic_address,scenic_picture,
(
6371 * acos(
cos(radians('.$lat.'))
* cos( radians( latitude ) )
* cos(radians( longitude ) - radians('.$lng.'))
+
sin( radians('.$lat.') )
* sin( radians( latitude ) )
)
) as distance')
->having('distance < 1000')//查询1000公里以内
->order('distance asc')
->limit(1)
->find();
if(empty($message))
echo json_encode(['status'=>0,'err'=>'没有数据']);
exit();
echo json_encode(['status'=>1,'data'=>$message]);
以上是关于TP5查询最近景区的主要内容,如果未能解决你的问题,请参考以下文章