什么是云地理编码服务?
地理编码(Geocoding V3.0)又称云地理编码(cloudgc),即在原有地理编码服务基础上,增加了个性化Geocoding服务。用户可在云端新增、修改自定义地址信息(需在请求中添加geotable_id参数,关联用户自定义的位置数据表,详见:http://lbsyun.baidu.com/index.php?title=lbscloud/api/geodata ),关联真实的业务场景位置,同时训练出更准确的位置坐标信息。
使用方法
第一步:申请ak(即获取密钥),若无百度账号则首先需要注册百度账号。
第二步:在位置数据表中新建、修改位置数据。(详见:http://lbsyun.baidu.com/index.php?title=lbscloud/api/geodata )
第三步:拼写发送http请求的url,注意需使用第一步申请的ak&第二步中的geotable_id(未添加geotable_id,则调用普通地理编码服务)。
第四步:接收http请求返回的数据(支持json格式)。
服务内容
服务地址:
http://api.map.baidu.com/cloudgc/v1
组成说明:
请求参数
参数 | 是否必须 | 默认值 | 格式举例 | 含义 |
---|---|---|---|---|
address | 是 | 无 | 北京市海淀区上地十街10号 | 地址 |
city | 否 | 无 | 北京市 | 目标城市偏向 |
geotable_id | 否 | 无 | 144316 | geotable id,与ak配合鉴权,若填写则激活个性化GC服务(可新增、修改自定义地址信息),自定义数据的管理与维护详见:http://lbsyun.baidu.com/index.php?title=lbscloud/api/geodata |
ak | 是 | 无 | cO3seSdq***XGxpXD8VObPGvXNcwcW04 | 用户申请注册的key |
sn | 否 | 无 | 若用户所用ak的校验方式为sn校验时该参数必须。 | |
callback | 否 | 无 | 将json格式的返回值通过callback函数返回以实现jsonp功能 |
对于address字段可能会出现中文或其它一些特殊字符(如:空格),对于类似的字符要进行编码处理,编码成 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保留字 | ! * ' ( ) ; : @ & = + $ , / ? % # [ ] |
附注:
1、javascript中一般采用encodeURIComponent函数对特殊字符进行编码;
2、Java中可以使用函数URLEncoder.encode对特殊字符进行编码;
3、C#中可以使用函数HttpUtility.UrlEncode对特殊字符进行编码;
4、php中可以使用函数urlencode对特殊字符进行编码
请求示例
http://api.map.baidu.com/cloudgc/v1?ak=hQqM******rLhbc74OVGlqZ8&geotable_id=******&address=北京市海淀区上地十街10号&city=北京
请求含义
发出一个结构化地址为”北京市海淀区上地十街10号“的请求,目标城市偏向为北京。解析该地址对应的地理坐标&地址构成。
返回结果字段
状态字段
字段 | 字段 | 含义 |
---|---|---|
source | 解析结果的来源,百度(baidu)、用户自定义(custom) | |
location | Lat(纬度)&lng(经度) | |
bound | 百位置坐标误差范围[左下角纬度经度];[右上角纬度度],如:"29.595089,105.048917;29.595874,105.049815" | |
formatted_address | 百度地址结构化字符,格式:省市区道路 | |
custom_address | 用户自定义的地址 | |
address_components | province | 省 |
city | 城市 | |
district | 区县 | |
street | 道路 | |
level | 解析结果的地址级别,省、城市、区县,如果解析到POI或门牌号,则level为POI类型、道路等 | |
precise | 1.x表示精确坐标,0.x表示模糊坐标,x表示匹配区域的精度范围大小,用户自定义地址默认为2 大于5表示误差小于1000m,x大于8表示误差小于100m |
注:返回结果中,数据源为baidu,则最多返回3条;数据源为custom,返回数量不限。
数据源为custom(个性化Geocoding服务)