【百度地图API】注册、使用以及问题解决方法<小白必看>

需求:需实现地址转换经纬度功能

流程:注册->认证->申请AK码->使用AK码->问题解决方案

【前提准备】

1、登录/注册账号

https://lbsyun.baidu.com/apiconsole/center
登录界面图

2、身份认证

必须身份认证才能使用百度地图API,身份认证包含企业、个人、学生三个类别,如果日常使用不频繁可以点击“我不是企业员工”。
企业认证图
个人身份认证:
个人认证图
学生身份认证:
学生认证图

3、进入控制台

提交身份认证信息后进入控制台页面,但出于申请中状态,需要稍等一会等待认证通过。
控制台页面图

【如何使用】

1、进入应用管理

使用百度地图API需要AK码,而AK码需要创建应用获取。在应用管理页面可以浏览、创建、修改、删除应用。
在这里插入图片描述

2、创建应用

应用类型包含服务端、浏览器端、微信小程序、Android应用、iOS应用、鸿蒙应用。根据个人需求选择类型,在此以服务端举例。
在这里插入图片描述
启用服务根据个人需求勾选。
在这里插入图片描述
高级服务后期付费使用。
在这里插入图片描述
IP白名单的意思是只有写在输入框内的ip地址或IP前缀网段才可以发送请求。填写0.0.0.0/0指的是所有IP都可以发送请求。此项后期是可以修改的。
在这里插入图片描述
提交后获得AK码,接下来去服务端发送请求。
在这里插入图片描述

3、使用AK码发送请求

这里用nodejs作为服务端,以使用百度地图编码API为例。

(1)服务器下载axios依赖:

npm install axios

(2)编写请求地理编码函数
response.data.status==0,表示请求成功

//使用 axios发送请求
const axios = require('axios');
// 百度地图API Key
const API_KEY = '你自己的AK';
// 百度地图地理编码函数
async function geocode(address) {
    try {
        const response = await axios.get('https://api.map.baidu.com/geocoding/v3/', {
            params: {
                address: address,
                output: 'json',
                ak: API_KEY
            }
        });
        if (response.data.status === 0) {
            // 地理编码成功
            const location = response.data.result.location;
            return {
                latitude: location.lat,
                longitude: location.lng
            };
        } else {
            // 地理编码失败
            throw new Error(response.data);
        }
    } catch (error) {
        return;

    }
}

API请求返回的格式:

{
	data:{
		{
		  status: 0,
		  result: {
		    location: { lng: 116.30787799999993, lat: 40.05702706489032 },
		    precise: 1,
		    confidence: 100,
		    comprehension: 100,
		    level: ''
		  }
		}
	},
	...
}

(3)接口调用地理编码函数

router.post('/XXX/XXX', async (ctx, next) => {
        /**ctx.request.body为解析的post数据对象 */
        let {
            address
        } = ctx.allQuery;
        if (address) {
        	// 调用
            let data = await geocode(address).catch(error => {
                ctx.body = {
                    success: false,
                    message: "查询错误"
                };
            });

            if (data) {
                ctx.body = {
                    success: true,
                    message: "查询成功",
                    data
                };
            } else {
                ctx.body = {
                    success: false,
                    message: "查询错误"
                };
            }
        } else {
            ctx.body = {
                success: false,
                message: "参数错误!"
            };
        }
    })

成功请求返回的响应内容:
在这里插入图片描述
在此是以地理编码为例,附上官方API文档:https://lbsyun.baidu.com/faq/api?title=webapi
在这里插入图片描述

【问题解决】

如果请求百度地图API提示:{"status":240,"message":"APP 服务被禁用"}

以下方式可以解决:
1、你现在使用的AK码应用,在“启动服务”中勾选对应的服务。
在这里插入图片描述
2、使用最新的AK码
3、删除其他同“应用类型”的应用。(亲测有效)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值