laravel8 高德地址转经纬度

Laravel框架
436
0
0
2022-09-10

高德地图开放平台:高德开放平台 | 高德地图API

api地址:地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图API

在config目录添加一个高德接口配置文件,配置地址转换的URL,把使用占位符,飘红的位置要改成json

laravel8 高德地址转经纬度

config里封装

return [

'gaodeapi'=>"https://restapi.amap.com/v3/geocode/geo?address=%s&output=json&key=%s",
];

Guzzle-http: Guzzle, PHP HTTP 客户端 — Guzzle中文文档

安装一下此插件:

composer require guzzlehttp/guzzle

使用guzzle来发起GET请求

<?php
namespace App\Http\business;

use GuzzleHttp\Client;
class Nav
{
    /**
     * 封装地图转换
     * @param $data
     * @return array
     * @throws \GuzzleHttp\Exception\GuzzleException
     */ 
    public static function Nav($data){
        $key="你的KEY";
        //把高德地图的API读取出来 
        $api=config('powers.gaodeapi');
        //把格式化的字符串占位符替换成具体的内容 
        $url=sprintf($api,$data,$key);
        //申请一个请求类,并指定请求的过期时间 
        $client=new Client(['timeout'=>5]);
        //发起请求 
        $response=$client->get($url);
        //获取出主要的返回值内容 
        $body=(string)$response->getBody();
        //转换成数组 
        $arr=json_decode($body,true);
        if (count($arr['geocodes'])>0){
            $locationArr=explode(',',$arr['geocodes'][0]['location']);
            $res=[
              'longitude'=>$locationArr[0],
              'latitude'=>$locationArr[1]
            ];
            return $res;
        }
    }
}