laevael 7 使用redis 中geo 类型计算两地之间的距离

  public function redis(Request $request){
//$city地区1
//$goodsCity地区2
$city=$request->input('city');
$goodsCity=$request->input('goodsCity');
//地址改为经纬度 调用腾讯位置服务
$url='http://apis.map.qq.com/ws/geocoder/v1/?address='.$city.'&key=你申请的key';
$result=file_get_contents($url);
$data = json_decode($result,TRUE);
//经纬度 取值
// var_dump($data['result']['location']['lng']);
// var_dump($data['result']['location']['lat']);
//地址改为经纬度 调用百度地图
$url='http://apis.map.qq.com/ws/geocoder/v1/?address='.$goodsCity.'&key=ZSYBZ-RF6RK-RONJP-AZYJM-BQBKQ-4OB3J';
$result=file_get_contents($url);
$res = json_decode($result,TRUE);
//经纬度 取值
// var_dump($res['result']['location']['lng']);
// var_dump($res['result']['location']['lat']);
Redis::geoAdd('citys', $data['result']['location']['lng'], $data['result']['location']['lat'], $city);
Redis::geoAdd('citys', $res['result']['location']['lng'], $res['result']['location']['lat'], $goodsCity);
$data=Redis::geodist( 'citys','beijing', 'shanghai','km');
return ['code'=>200,'data'=>'两地距离'.$data.'km','msg'=>'ok'];
}


redis 版本必须是3.2 以上

 




posted @ 2021-12-11 10:48  执着y1份等待  阅读(96)  评论(0)    收藏  举报