地理编码服务(又名geocoder)是一类web api接口服务;
地理编码服务提供将结构化地址数据(如:北京市海淀区上地十街十号)转换为对应坐标点(经纬度)功能;
用户可通过该功能,将结构化地址(省/市/区/街道/门牌号)解析为对应的位置坐标。地址结构越完整,地址内容越准确,解析的坐标精度越高。
https://api.map.baidu.com/geocoding/v3/?address=北京市海淀区上地十街10号&output=json&ak=您的ak&callback=showlocation //get请求
注意:当前为v3.0版本接口文档,v2.0及以前版本自2019.6.18起新用户无法使用。老用户仍可继续使用v2.0及以前版本请求实现逆地理编码服务,为保障用户体验,建议您尽快迁移到v3.0版本。
参数名 | 参数含义 | 类型 | 举例 | 默认值 | 是否必须 |
---|---|---|---|---|---|
address | 待解析的地址。最多支持84个字节。 可以输入两种样式的值,分别是: 1、标准的结构化地址信息,如北京市海淀区上地十街十号 【推荐,地址结构越完整,解析精度越高】 2、支持“*路与*路交叉口”描述方式,如北一环路和阜阳路的交叉路口 第二种方式并不总是有返回结果,只有当地址库中存在该地址描述时才有返回。 |
string | 北京市海淀区上地十街10号 | 无 | 是 |
city | 地址所在的城市名。用于指定上述地址所在的城市,当多个城市都有上述地址时,该参数起到过滤作用,但不限制坐标召回城市。 | string | 北京市 | 无 |
否 |
ret_coordtype | 可选参数,添加后返回国测局经纬度坐标或百度米制坐标 凯发k8官方旗舰厅-凯发app官方网站 | string | gcj02ll(国测局坐标)、bd09mc(百度墨卡托坐标) | bd09ll(百度经纬度坐标) | 否 |
ak | 用户申请注册的key,自v2开始参数修改为“ak”,之前版本参数为“key” | string | |
无 | 是 |
sn | 若用户所用ak的校验方式为sn校验时该参数必须 sn生成 |
string | |
无 | 否 |
output | 输出格式为json或者xml | string | json或xml | xml | 否 |
callback | 将json格式的返回值通过callback函数返回以实现jsonp功能 | string | callback=showlocation(javascript函数名) | 无 | 否 |
extension_analys_level |
是否触发解析到最小地址结构功能 |
string |
extension_analys_level=1或true时,触发analys_level;字段返回参数; extension_analys_level=0或false时; analys_level字段不返回参数; |
0 | 否 |
名称 |
含义 | 类型 | |
---|---|---|---|
status |
返回结果状态值, 成功返回0,其他值请查看下方返回码状态表。 | int | |
location |
经纬度坐标 | object | |
|
lat | 纬度值 | float |
|
lng | 经度值 | float |
precise |
位置的附加信息,是否精确查找。1为精确查找,即准确打点;0为不精确,即模糊打点。 | int | |
confidence |
描述打点绝对精度(即坐标点的误差范围)。 confidence=100,解析误差绝对精度小于20m; confidence≥90,解析误差绝对精度小于50m; confidence≥80,解析误差绝对精度小于100m; confidence≥75,解析误差绝对精度小于200m; confidence≥70,解析误差绝对精度小于300m; confidence≥60,解析误差绝对精度小于500m; confidence≥50,解析误差绝对精度小于1000m; confidence≥40,解析误差绝对精度小于2000m; confidence≥30,解析误差绝对精度小于5000m; confidence≥25,解析误差绝对精度小于8000m; confidence≥20,解析误差绝对精度小于10000m; |
int | |
comprehension | 描述地址理解程度。分值范围0-100,分值越大,服务对地址理解程度越高(建议以该字段作为解析结果判断标准); 当comprehension值为以下值时,对应的准确率如下: comprehension=100,解析误差100m内概率为91%,误差500m内概率为96%; comprehension≥90,解析误差100m内概率为89%,误差500m内概率为96%; comprehension≥80,解析误差100m内概率为88%,误差500m内概率为95%; comprehension≥70,解析误差100m内概率为84%,误差500m内概率为93%; comprehension≥60,解析误差100m内概率为81%,误差500m内概率为91%; comprehension≥50,解析误差100m内概率为79%,误差500m内概率为90%; //解析误差:地理编码服务解析地址得到的坐标位置,与地址对应的真实位置间的距离。 |
int | |
level |
可以打点到地址文本中的真实地址结构, 例如问题地址:北京市海淀区北京路百度大厦,level:"道路" 能精确理解的地址类型,包含:unknown、国家、省、城市、区县、乡镇、村庄、道路、地产小区、商务大厦、政府机构、交叉路口、商圈、生活服务、休闲娱乐、餐饮、宾馆、购物、金融、教育、医疗 、工业园区 、旅游景点 、汽车服务、火车站、长途汽车站、桥 、停车场/停车区、港口/码头、收费区/收费站、飞机场 、机场 、收费处/收费站 、加油站、绿地、门址 |
string | |
analys_level |
可以解析地址文本中的最小地址结构, 例如问题地址:北京市海淀区北京路百度大厦,analys_level:"poi", 能精确理解的地址类型包含: 省 市 区县 乡镇 道路 门址 poi 。 |
string |
返回码 | 英文描述 | 定义 | 常见原因 |
---|---|---|---|
0 | ok | 正常 | 服务请求正常召回 |
1 | |
服务器内部错误 |
|
2 | parameter invalid | 请求参数非法 | 必要参数拼写错误或漏传(如query和tag请求中均未传入) |
3 | verify failure | 权限校验失败 | |
4 | quota failure | 配额校验失败 | 服务当日调用次数已超限,请前往提升(请优先进行) |
5 | ak failure | ak不存在或者非法 | 未传入ak参数;ak已被删除(可前往恢复); |
101 |
|
服务禁用 |
请到检验您的ak是否有该服务权限 |
102 |
|
不通过白名单或者安全码不对 |
|
2xx |
|
无权限 |
|
3xx |
|
配额错误 |
|
1
2
3
4
api请求中需要用到中文或一些特殊字符的参数,如query、region等,为了避免提交到后台乱码,需要对这几个参数值进行编码处理,转换成utf-8字符的二字符十六进制值,凡是不在下表中的字符都需要进行编码。
字符集合 | 字符 |
url非保留字 |
a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 - _ . ~ |
url保留字 |
! * ' ( ) ; : @ & = $ , / ? % # [ ] |
如果中文参数中使用url保留字字符的字面意思,例如:region关键字取值为"?北京",检索关键字包含一个问号,此问号也必须进行编码。
附注:
javascript中一般采用encodeuricomponent函数对特殊字符进行编码。
java中可以使用函数urlencoder.encode对特殊字符进行编码。
c#中可以使用函数httputility.urlencode对特殊字符进行编码。
php中可以使用函数urlencode对特殊字符进行编码。
wgs84:为一种大地坐标系,也是目前广泛使用的gps全球卫星定位系统使用的坐标系。
gcj02:是由中国国家测绘局制订的地理信息系统的坐标系统。由wgs84坐标系经加密后的坐标系。
bd09:为百度坐标系,在gcj02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标
正/逆地理编码服务默认输入输出坐标类型为百度坐标(bd09),同时可通过参数("coord_type","ret_coordtype")控制输入输出坐标类型。输入坐标支持以上三种坐标系,输出坐标支持-国测局坐标(gcj02)和百度坐标(bd09)
注意:不同类型坐标如需转换,请使用百度地图开放平台提供的标准坐标转换接口。请勿使用其他渠道提供的坐标转换方法,以免影响坐标转换精度。
服务相关配额及并发请求限制请访问页面查看。
对地理编码影响最大的是请求中地址的完整度和准确度。请求地址结构越完整(包含省、市、区县、乡镇、街道、门牌),各级地址越准确,最后解析的坐标就越精准。
如请求中的地址质量已经很高,仍无法解析到准确坐标,则可能是百度门址库暂未覆盖该地址,我们会持续提升数据覆盖。
这类解析结果,一般precise=0,建议通过该字段,过滤非精确解析结果。
百度地图客户端针对poi的address数据进行检索,而正向地理编码则针对专业的「门址」数据进行解析,两份数据不同。
问题已知,我们将在19年9月服务版本中排期修复。
地理编码与逆地理编码服务发布3.0版本后(当前文档为3.0版本),在控制台中未默认开启服务,需要您手动开启,否则无访问权限。请进入,找到您使用的ak,点击设置,将地理编码服务勾选上。
2012年5月23日
v1.0
2013年4月7日
v2.0
2019年6月18日
v3.0
增加回调函数,解决js使用ajax不能跨域请求数据问题。
您可以通过此链接获知百度地图poi(兴趣点)的tag引导体系,辅助您检索poi。 如检索query为百度地图的tag“生活服务”,返回的检索结果即包含关键字为“生活服务”的poi、也包含tag为“生活服务”的poi,从而聚焦检索结果。