高德地图API-获取位置信息的经纬度

一、首先需要注册成为开发者,注册成功后就可以使用此开放平台。

步骤如下:

1、百度搜索 高德开放平台,进入网站。或者 输入网址:https://lbs.amap.com/

搜索高德开放平台

高德开发平台首页

2、点击注册成为开发者(我是个人开发,就选个人开发者,如果是企业就选企业开发者)

1-选择开发者类型

2-注册账号

3-完善个人信息

4-注册完成

直到注册成功。

二、进入控制台

1、进入控制台

进入控制台

2、在应用管理创建应用

创建展示步骤

3、创建好应用

创建好应用展示

4、点击添加

生成key值得添加信息操作

创建应用成功后,需要添加一个key

5、生成key

红框为高德地图API中的key值

注:此key值是以后,请求api所用的key,一定要保存好

请求地址:

https://restapi.amap.com/v3/geocode/geo?address=北京市朝阳区阜通东大街6号&output=XML&key=<用户的key>

实例代码↓↓↓↓↓↓

参数有3个 (参数city可以省略)

1、address=北京市朝阳区阜通东大街6号
2、city=北京
3、output=XML
4、key=<用户的key>

https://restapi.amap.com/v3/geocode/geo?address=北京市朝阳区阜通东大街6号&city=北京&output=XML&key=<用户的key>

api地址:https://lbs.amap.com/api/webservice/guide/api/georegeo/

接口地址-第二个红框

localtion中逗号前面为经度,后面为纬度

由此api,把地址转为经纬度。

三、框架中获取到经纬度的方法

这里我用Laravel 5.8框架举例
Guzzle-http用于发起HTTP请求
Guzzle-http链接: https://guzzle-cn.readthedocs.io/

1、首选在Laravel中安装Guzzle-http插件,安装命令↓↓↓↓↓↓

composer require guzzlehttp/guzzle

使用guzzle来发起GET请求

引入类

// 发起HTTP请求
use GuzzleHttp\Client;

2、在laravel5.8框架中,在config目录下定义,gaode.php 配置文件,代码如下。

return [
    // 把地址转为经纬度  %s 占位符
    'geocode' => 'http://restapi.amap.com/v3/geocode/geo?key=xxxxxxxxxxxxxxxx&address=%s&city=%s'
];

3、在这里我是才用了添加信息成功后,进行地址转换操作,后修改数据库的经纬度字段中的内容。

经度:longitude
纬度:latitude

    // 添加房源信息处理
    public function store(FangRequest $request) {
        // 表单数据
        $dopost = $request->except(['_token', 'file']);
        // 入库
        $model = Fang::create($dopost);
        // 添加数据入库成功了
        // 发起HTTP请求
        // 申明一个请求类,并指定请求的过期时间
        $client = new Client(['timeout' => 5]);
        // 得到请求地址
        $url = config('gaode.geocode');
        $url = sprintf($url, $model->fang_addr, $model->fang_province);
        // 发起请求
        $response = $client->get($url);
        $body = (string)$response->getBody();
        $arr = json_decode($body, true);
        // 如果找到了对应经纬度,存入数据表中
        if (count($arr['geocodes']) > 0) {
            $locationArr = explode(',', $arr['geocodes'][0]['location']);
            $model->update([
                'longitude' => $locationArr[0],
                'latitude' => $locationArr[1]
            ]);
        }
        // 跳转
        return redirect(route('admin.fang.index'))->with('success','房源信息添加成功');
    }

4、入库成功后,在数据表中看到对应地址经纬度


红框中为经纬度更新信息

你可能感兴趣的:(高德地图API-获取位置信息的经纬度)