数据库
首页 > 数据库> > laevael 7 使用redis 中geo 类型计算两地之间的距离

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 以上

 




标签:laevael,city,data,redis,location,res,geo,goodsCity,result
来源: https://www.cnblogs.com/dl1121/p/15674866.html