注册

百度地图地理编码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 才用)

校验规则(企业地址专用)

  1. confidence < 50 → 丢弃,不可用

  2. level 不是 street、number → 低精度,丢弃

  3. 返回的 city != 你传入的 city → 判定跨城错误,直接抛弃

这一步能拦截90%跨城错误

5. 兜底策略:一次解析失败,自动降级重试

如果第一次解析失败/跨城,自动执行降级:

  1. 去掉最后面的详细门牌号

  2. 只保留 省+市+区+路

  3. 再次请求地理编码

例子:

一级地址:广东省深圳市南山区粤海街道科技园科技南路16号

降级后:广东省深圳市南山区粤海街道科技园

0 个评论

要回复文章请先登录注册