云地理编码是一类Web API接口服务;
结合地理编码服务和LBS.云存储服务,将用户存储的自定义地址数据解析成对应坐标,同时解析地址构成(省、市、区、街道)。
用户可不依赖百度地图地址库,实现将自定义地址解析为指定坐标的功能。
云地理编码服务将在近期停止新用户接入,已在使用云地理编码服务的用户仍可正常访问服务。
服务文档也将在近期下线,请接入服务的用户做好备份。
输入结构化地址:「北京市海淀区科技园1号楼二单元」
通过百度自有地址数据解析结果为:“lat:41.055743,lng:116.308243”
用户根据真实场景,在云端将坐标训练为:“lat:41.056743,lng:116.308243”
输入结构化地址:「北京市海淀区科技园1号楼二单元」
地址数据解析结果为:“lat:41.055743,lng:116.308243”
用户为方便对地址管理,在云端将该坐标地址信息修改为“西二旗服务中心”
之后,用户可请求“西二旗服务中心”地址,获取对应坐标。
用户输入结构化地址:「北京市海淀区软件园南街科技园1号楼2单元。」
通过云地理编码服务,解析出地址构成:
省:北京市;
市:北京市;
区:海淀区;
街:软件园南街;
http://api.map.baidu.com/cloudgc/v1?geotable_id=******&address=北京市海淀区营业网点&city=北京&ak=你的ak //GET请求
参数名 | 参数含义 | 类型 | 举例 | 默认值 | 是否必须 |
---|---|---|---|---|---|
address | 待解析的地址。最多支持84个字节。 |
string | 北京市海淀区上地十街10号 | 无 | 是 |
city | 地址所在的城市名。用于指定上述地址所在的城市,当多个城市都有上述地址时,该参数起到过滤作用,但不限制坐标召回城市。 | string | 北京市 | 无 |
否 |
geotable_id | 用户使用云存储服务,存储自定义数据时生成的数据表ID。与ak配合鉴权。 若填写则激活个性化GC服务(对指定geotable_id 数据表中地址进行解析) 自定义数据的管理与维护介绍 |
int | 144316 | 无 | 否 |
ak | 用户申请注册的key(服务鉴权秘钥) 申请ak | string | E4805d16520de693a3fe70 | 无 | 是 |
sn | 若用户所用ak的校验方式为sn校验时该参数必须 sn生成 |
string | |
无 | 否 |
output | 输出格式为json或者xml | string | json或xml | xml | 否 |
callback | 将json格式的返回值通过callback函数返回以实现jsonp功能 | string | callback=showLocation(JavaScript函数名) | 无 | 否 |
名称 |
含义 | 类型 | |
---|---|---|---|
status |
返回结果状态值, 成功返回0 | int | |
source |
解析结果的来源,百度(baidu)、用户自定义(custom) |
string | |
location |
lat(纬度)&lng(经度) | float | |
bound |
百位置坐标误差范围[左下角纬度经度];[右上角纬度度],如:"29.595089,105.048917;29.595874,105.049815" |
float | |
formatted_address |
百度地址结构化字符,格式:省市区街道门牌 |
string | |
custom_address |
用户自定义的地址 |
string | |
address_components |
province |
省 |
string |
|
city | 城市 | string |
|
district | 区县 | string |
|
street |
道路 |
string |
|
level |
解析结果的地址级别,省、城市、区县,如果解析到POI或门牌号,则level为POI类型、道路等 |
string |
precise |
1.x表示精确坐标,0.x表示模糊坐标,x表示匹配区域的精度范围大小,用户自定义地址默认为2 大于5表示误差小于1000m,x大于8表示误差小于100m |
float |
以下为解析百度数据(基础地理编码服务)的返回值
以下为使用云地理编码解析用户在云存储中创建的自定义地址,得到的返回值。
(用户在云存储中创建了一个地址同样为北京市海淀区上地十街10号的地点,赋予了一个自定义坐标。服务中关联geotable_id后,解析的地址坐标为用户自定义。)
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表示百度墨卡托米制坐标
云地理编码服务V3版默认输入输出坐标类型为百度坐标(BD09),同时可通过参数("coord_type","ret_coordtype")控制输入输出坐标类型。输入坐标支持以上三种坐标系,输出坐标支持-国测局坐标(GCJ02)和百度坐标(BD09)
注意:不同类型坐标如需转换,请使用百度地图开放平台提供的标准坐标转换接口。请勿使用其他渠道提供的坐标转换方法,以免影响坐标转换精度。
服务相关配额及并发请求限制请访问开发者权益页面查看。
解析结果坐标和普通地理编码服务相同。
2016年8月10日
V1.0