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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值