查看: 227|回复: 0

[php/mysql] 调用腾讯地图计算两点间的距离

[复制链接]

748

主题

39

回帖

3907

积分

管理员

总舵主

积分
3907
QQ
发表于 2026-3-18 18:07:23 | 显示全部楼层 |阅读模式
代码:

  1. // 返回值
  2.             $return = [
  3.                 'distance' => 0
  4.             ];
  5.             // 接口地址
  6.             $url = "https://apis.map.qq.com/ws/direction/v1/driving/?from={$config['storelat']},{$config['storelng']}&to={$params['lat']},{$params['lng']}&output=json&callback=cb&key={$config['qqmap_apikey']}";
  7.             $response = Http::get($url);
  8.             $data = json_decode($response, true);
  9.             // \think\Log::record($data['result']['routes'][0]['distance']);
  10.             if (isset($data['status']) && $data['status'] == 0) {
  11.                 // 导航距离
  12.                 $distance = $data['result']['routes'][0]['distance'] / 1000;
  13.                 $return['distance'] = $distance;
  14.                 // 运费
  15.                 $delivery = SkuDelivery::where('status', 1)
  16.                     ->where('distance_start', '<', $distance)
  17.                     ->where('distance_end', '>=', $distance)
  18.                     ->find();
  19.                 if (empty($delivery)) {
  20.                     $this->error('抱歉,您的地址超出配送范围,请更换地址');
  21.                 }
  22.                 $return['deliveryfee'] = $delivery->payfee;
  23.                 $return['totalfee'] = bcadd($params['payfee'], $delivery->payfee, 2);
  24.                 $this->success('请求成功', $return);
  25.             } else {
  26.                 $this->error('地图接口调用失败');
  27.             }
复制代码


道不同,不相为谋!理想要有,万一实现了呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:2513533699@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鲁ICP备19000917号|鲁公网安备37078302000320号

在本版发帖
关注公众号
QQ客服返回顶部