调用百度地图接口是开发中常见的需求,主要用于在网页或应用中嵌入地图功能、进行地理编码、路径规划等操作,以下是详细的调用步骤和注意事项,帮助开发者快速上手。

准备工作
在调用百度地图接口前,需完成以下准备工作:
- 注册百度地图开放平台账号
访问百度地图开放平台官网,使用百度账号登录或注册新账号。 - 创建应用获取AK
登录后,进入“控制台”→“应用管理”→“我的应用”,点击“创建应用”,选择应用类型(如浏览器端、Android SDK、iOS SDK等),并填写应用名称,提交后,系统会生成访问密钥(AK),这是调用接口的唯一凭证,需妥善保管。 - 了解接口类型与计费规则
百度地图提供多种接口,如JavaScript API、Web服务API(包括地理编码、路径规划等)、静态地图API等,部分接口免费,部分按调用量计费,需在控制台查看具体文档和套餐。
调用JavaScript API嵌入地图
JavaScript API适用于网页端地图展示,步骤如下:
-
引入API文件
在HTML文件中通过<script>
标签引入百度地图API,需替换YOUR_AK
为实际密钥:<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=YOUR_AK"></script>
v=3.0
表示API版本,可根据需求选择其他版本。- 若需额外功能(如交通图、热力图),需添加
&s=1
参数或引入扩展库。
-
创建地图容器
在HTML中定义一个<div>
作为地图容器,并设置宽高:(图片来源网络,侵删)<div id="map" style="width: 100%; height: 500px;"></div>
-
初始化地图
通过JavaScript代码创建地图实例并设置中心点和缩放级别:var map = new BMap.Map("map"); // 创建Map实例 var point = new BMap.Point(116.404, 39.915); // 初始化中心点坐标(北京天安门) map.centerAndZoom(point, 15); // 设置中心点和缩放级别 map.addControl(new BMap.NavigationControl()); // 添加缩放控件
坐标需使用百度坐标系(BD-09),若使用其他坐标系(如WGS-84、GCJ-02),需先转换。
-
添加覆盖物与事件
可添加标记、信息窗口、圆形覆盖物等,并绑定事件:var marker = new BMap.Marker(point); // 创建标记 map.addOverlay(marker); // 添加标记到地图 marker.addEventListener("click", function(){ // 点击事件 var infoWindow = new BMap.InfoWindow("这是天安门广场!"); map.openInfoWindow(infoWindow, point); });
调用Web服务API(以地理编码为例)
Web服务API适用于后端或非地图展示类需求,如地址转坐标、逆地理编码等,以地理编码(地址转坐标)为例:

-
请求接口
地理编码API的请求URL如下(需替换YOUR_AK
和地址):http://api.map.baidu.com/geocoding/v3/?address=北京市海淀区上地十街10号&output=json&ak=YOUR_AK
address
:待解析的地址。output
:返回格式(支持json
或xml
)。ak
:申请的访问密钥。
-
处理响应
接口返回JSON格式的数据,包含状态码、坐标等信息:{ "status": 0, "result": { "location": {"lng": 116.305864, "lat": 40.057829}, "precise": 1, "confidence": 80, "comprehension": 100 } }
status=0
表示成功,result.location
为经纬度坐标。
-
代码示例(Python)
使用requests
库调用接口:import requests import json ak = "YOUR_AK" address = "北京市海淀区上地十街10号" url = f"http://api.map.baidu.com/geocoding/v3/?address={address}&output=json&ak={ak}" response = requests.get(url) result = response.json() if result["status"] == 0: lng = result["result"]["location"]["lng"] lat = result["result"]["location"]["lat"] print(f"经度: {lng}, 纬度: {lat}") else: print("地理编码失败:", result["message"])
常见问题与注意事项
-
AK安全与配额
- AK泄露可能导致接口被滥用,建议设置IP白名单或使用SK(Security Key)进行签名校验(Web服务API)。
- 免费版AK有调用量限制(如JavaScript API每日万次),超出需升级付费套餐。
-
坐标系问题
百度地图使用BD-09坐标系,若设备GPS返回WGS-84坐标,需先转换,可通过百度提供的转换工具或API实现。
-
跨域问题
若前端直接调用Web服务API,可能因跨域策略被浏览器拦截,建议通过后端代理请求。
相关问答FAQs
Q1: 如何解决百度地图API加载失败的问题?
A1: 首先检查AK是否正确且有效,确认应用类型与实际调用场景一致(如浏览器端AK不可用于移动端),查看浏览器控制台错误信息,若提示“权限不足”,可能是未设置IP白名单或域名未添加到应用安全域名中,网络波动或API服务异常也可能导致加载失败,可尝试更换网络或稍后重试。
Q2: 地理编码接口返回“invalid AK”错误如何处理?
A2: “invalid AK”表示AK无效或未授权,需检查以下三点:
- 确认AK是否正确复制,无多余空格或字符;
- 登录百度地图开放平台,检查应用状态是否为“已启用”,AK是否被删除或禁用;
- 若应用类型选择错误(如选择“浏览器端”但实际用于服务端),需重新创建应用并选择正确类型。
通过以上步骤和注意事项,开发者可顺利调用百度地图接口实现各类地图功能,建议结合官方文档(https://lbsyun.baidu.com/index.php?title=webapi)深入学习接口参数和高级用法。