百度地图地理编码API完整使用指南
地理编码 API 核心能力与适用场景
百度地图地理编码 API 是一项将结构化地址(如「北京市海淀区上地十街10号」)转换为标准经纬度坐标的 Web 服务,支持中国大陆及海外地址解析,返回坐标默认采用 BD09LL(百度经纬度)坐标系,并提供置信度(confidence)与地址理解度(comprehension)两项可信度指标,是 LBS 应用打点、地图定位、物流配送等场景的基础能力。
接口基础信息、请求参数与返回字段说明
1、服务概述
服务地址:https://api.map.baidu.com/geocoding/v3/
请求方式:HTTP GET
输出格式:JSON / XML
2、地址解析模式
结构化地址解析:如「北京市海淀区上地十街10号」(推荐,结构越完整精度越高)
多坐标系输出
默认返回 bd09ll(百度经纬度坐标)
可通过 ret_coordtype 切换为 gcj02ll(国测局坐标)或 bd09mc(百度墨卡托坐标)
请求参数
必选参数
address:待解析地址,最大 128 字节
ak:开发者密钥
可选参数
city:城市过滤(多城市同名地址时使用)
ret_coordtype:坐标类型
output:返回格式(json / xml)
callback:JSONP 回调函数名
extension_analys_level:触发最小地址结构解析
extension_poi_infos
sn:SN 校验签名(启用 SN 校验时必传)
返回结果核心字段
status:服务状态码,0 表示成功
result.location.lng / lat:经纬度
result.precise:是否精确打点(1=精确,0=模糊)
result.confidence:坐标绝对精度
result.comprehension:地址理解度(推荐作为判断解析质量的主指标)
result.level:地址类型(如「道路」「门址」「商务大厦」等)
典型应用场景
物流轨迹起终点定位
O2O 商家入驻地址打点
政企地理信息系统(GIS)地址入库标准化
用户填写地址自动转坐标
常见状态码

数据来源:百度地图开放平台《地理编码 API 服务文档》(2025 版)
开发高频问题与坐标偏移解决办法
Q1:地理编码返回的经纬度可以直接用于高德/腾讯地图吗? A:不可以。默认返回的是 BD09LL 百度坐标,需通过 ret_coordtype=gcj02ll 切换为国测局坐标后,才能在高德/腾讯地图上正确显示,否则会出现约 50–500 米的偏移。
Q2:confidence 和 comprehension 有什么区别,应该看哪个? A:confidence 描述坐标点的绝对误差范围,comprehension 描述服务对地址语义的理解程度。官方推荐以 comprehension 作为解析质量的判断标准,因为它对模糊地址、不完整地址有更稳定的评估。
Q3:地址写得不完整(如只写「北京上地十街10号」)能解析吗? A:可以,但建议传入完整结构化地址(省→市→区→街道→门牌号)。否则会解析不准确;地址结构越完整,confidence 与 comprehension 越高;缺省省市信息时可通过 city 参数补充以避免同名歧义。
企业地址解析精度提升实操方法
1. 强制传入 city 参数(最有效,解决80%跨城问题)
错误做法:只传 address,让百度自动猜城市正确做法:从企业工商信息里提取城市,强制传入 city=
例子:
address=北京市海淀区中关村南大街5号
city=北京市 ✅ 强制锁定北京,绝不会跑到河北/天津
2. 清洗地址:删除所有会干扰的POI词汇(企业专用)
企业地址里的 XXX公司、XXXX有限公司这些词会让百度识别错误POI,导致跨城、错区。
清洗规则(直接用)
替换为空:公司、企业、有限公司、股份有限公司、集团
例子:
原地址:广东省深圳市南山区科技园腾讯大厦有限公司
清洗后:广东省深圳市南山区科技园腾讯大厦 ✅ 精度大幅提升
3. 地址格式标准化(从大到小)
百度地图最喜欢这种格式:
省 + 市 + 区 + 路 + 门牌号
不要直接传工商原始地址,要补全省市区,不要缺行政区划。
4. 开启精确校验:过滤掉“跨城”结果(代码可直接写)
百度返回结果里有两个关键字段,用来判断是否可信:
level: 地址类型(必须是 区县/街道/门牌号 才可信)
confidence: 可信度(≥70 才用)
校验规则(企业地址专用)
confidence < 50 → 丢弃,不可用
level 不是 street、number → 低精度,丢弃
返回的 city != 你传入的 city → 判定跨城错误,直接抛弃
这一步能拦截90%跨城错误。
5. 兜底策略:一次解析失败,自动降级重试
如果第一次解析失败/跨城,自动执行降级:
去掉最后面的详细门牌号
只保留 省+市+区+路
再次请求地理编码
例子:
一级地址:广东省深圳市南山区粤海街道科技园科技南路16号
降级后:广东省深圳市南山区粤海街道科技园