云检索是一类Web API接口服务; 通过该服务,用户可对云存储中存储的自定义地理数据进行多场景的检索。 包含:周边检索,矩形检索,本地检索和详情检索。
户可以一点为中心(中心点通过location参数指定),搜索中心点附近指定距离范围(搜索半径通过radius参数指定)内的POI点。检索时可通过tags参数指定检索的类型;通过sortby参数进行检索结果的排序(支持多字段排序);filter参数可以完成对指定数据范围的筛选。
矩形检索是指可检索指定矩形范围内的poi信息,检索区域通过bounds参数设定的矩形的左下角和右上角的经纬度坐标来确定。检索时可通过tags参数指定检索类型;检索结果可通过sortby参数进行排序(支持多字段排序);可通过filter参数筛选出指定的数据范围的结果。
本地检索是指可检索指定区域范围内的poi信息,区域通过region参数来设定,可以是全国范围也可以是小范围的如海淀区。检索时可通过tags参数指定检索类型;通过sortby参数对检索结果进行排序(支持多字段排序);filter参数可以完成对指定数据范围的筛选。
用户可通过该功能,根据云存储数据表中的数据id,检索对应数据详情。
http://api.map.baidu.com/geosearch/v3/nearby?ak=您的ak&geotable_id=****&location=116.395884,39.932154&radius=1000&tags=酒店&sortby=distance:1|price:1&filter=price:200,300 //GET请求
参数名 | 参数含义 | 类型 | 格式 | 备注 |
---|---|---|---|---|
ak | access_key | string(50) | 字符串 | 必须 |
geotable_id | geotable主键 | uint32 | 数字 | 必须 |
q | 检索关键字 | string(45) | 任意汉字或数字,英文字母,可以为空字符 | 可选 |
location | 检索的中心点 | string(25) | 逗号分隔的经纬度 | 必须
样例:116.4321,38.76623 |
coord_type | 坐标系 | uint32 | 数字 | 可选
3代表百度经纬度坐标系统 4代表百度墨卡托系统 |
radius | 检索半径 | uint32 | 单位为米,默认为1000 | 可选
样例:500 |
tags | 标签 | string(45) | 空格分隔的多字符串 | 可选
样例:美食 小吃 |
sortby | 排序字段 | string | ”分隔的多个检索条件。
格式为sortby={key1}:value1|{key2:val2|key3:val3}。 最多支持16个字段排序 {keyname}:1 升序 {keyname}:-1 降序 以下keyname为系统预定义的: distance 距离排序 weight 权重排序 |
可选
默认为按weight排序 如果需要自定义排序则指定排序字段 样例:按照价格由便宜到贵排序 sortby=price:1 |
filter | 过滤条件 | string(50) | 竖线分隔的多个key-value对
key为筛选字段的名称(存储服务中定义) 支持连续区间或者离散区间的筛选: a:连续区间 key:value1,value2 b:离散区间 key:[value1,value2,value3,...] |
可选
样例: a:连续区间 样例:筛选价格为9.99到19.99并且生产时间为2013年的项 price:9.99,19.99|time:2012,2012 b:离散区间 筛选价格为8,9,13,并且生产时间为2013年的项 price:[8,9,13]|time:2012,2012 注:符号为英文半角中括号 |
page_index | 分页索引 | uint32 | 当前页标,从0开始 | 可选
默认为0 |
page_size | 分页数量 | uint32 | 当前页面最大结果数 | 可选
默认为10,最多为50 |
callback | 回调函数 | string(20) | js回调函数 | 可选 |
sn | 用户的权限签名 | string(50) | 可选 |
参数名 | 参数含义 | 类型 | 备注 | |
---|---|---|---|---|
status | 状态码 | int32 | 0表示成功,其他值详见状态码说明 | |
size | 分页参数,当前页返回数量 | int32 | ||
total | 分页参数,所有召回数量 | int32 | ||
contents | uid | 数据id | string | |
geotable_id | geotable_id | string | ||
title | poi名称 | string | ||
address | poi地址 | string | ||
province | poi所属省 | string(20) | ||
city | poi所属城市 | string(20) | ||
district | poi所属区 | string(20) | ||
coord_type | 坐标系定义 | int32 | 可选
3代表百度经纬度坐标系统 4代表百度墨卡托系统 | |
location | 经纬度 | array | ||
tags | poi的标签 | string | ||
distance | 距离,单位为米 | int32 | ||
weight | 权重 | int32 | ||
{column} | 自定义列 | 自定义类型 | 自定义列/値,云存储未添加値时不返回 |
http://api.map.baidu.com/geosearch/v3/bound?ak=您的ak&geotable_id=****bounds=116.30,36.20;117.30,37.20 &sortby=price:1&tags=酒店&filer=price:200,300 //GET请求
参数名 | 参数含义 | 类型 | 格式 | 备注 |
---|---|---|---|---|
ak | access_key | string(50) | 字符串 | 必须 |
geotable_id | geotable主键 | uint32 | 数字 | 必须 |
q | 检索关键字 | string(45) | 任意汉字或数字,英文字母,可以为空字符 | 必须 |
bounds | 矩形区域 | String(25) | 左下角和右上角的经纬度坐标点。2个点用;号分隔 | 必须
样例:116.30,36.20;117.30,37.20 |
tags | 标签 | string(45) | 空格分隔的多字符串 | 可选
样例:美食 小吃 |
coord_type | 坐标系 | unit32 | 数字 | 可选
3代表百度经纬度坐标系统 4代表百度墨卡托系统 |
sortby | 排序字段 | string | ”分隔的多个检索条件。 格式为:sortby={key1}:value1|{key2:val2|key3:val3}。 最多支持16个字段排序 {keyname}:1 升序 {keyname}:-1 降序 系统预定义的keyname:weight 权重排序 |
可选 默认为按weight排序 如果需要自定义排序则指定排序字段 样例:按照价格由便宜到贵排序 sortby=price:1 |
filter | 过滤条件 | string(50) | 竖线分隔的多个key-value对key为筛选字段的名称(存储服务中定义) 支持连续区间或者离散区间的筛选: a:连续区间 key:value1,value2 b:离散区间 key:[value1,value2,value3,...] |
可选
样例: a:连续区间 样例:筛选价格为9.99到19.99并且生产时间为2013年的项 price:9.99,19.99|time:2012,2012 b:离散区间 筛选价格为8,9,13,并且生产时间为2013年的项 price:[8,9,13]|time:2012,2012 注:符号为英文半角中括号 |
page_index | 分页索引 | uint32 | 当前页标,从0开始 | 可选
默认为0 |
page_size | 分页数量 | uint32 | 当前页面最大结果数 | 可选
默认为10,最多为50 |
callback | 回调函数 | string(20) | js回调函数 | 可选 |
sn | 用户的权限签名 | string(50) | 可选 |
参数名 | 参数含义 | 类型 | 备注 | |
---|---|---|---|---|
status | 状态码 | int32 | 0表示成功,其他值详见状态码说明 | |
size | 分页参数,当前页返回数量 | int32 | ||
total | 分页参数,所有召回数量 | int32 | ||
contents | uid | 数据id | string | |
geotable_id | geotable_id | string | ||
title | poi名称 | string | ||
address | poi地址 | string | ||
province | poi所属省 | string(20) | ||
city | poi所属城市 | string(20) | ||
district | poi所属区 | string(20) | ||
location | 经纬度 | array | ||
coord_type | 坐标系定义 | int32 | 3代表百度经纬度坐标系统,4代表百度墨卡托系统 | |
tags | poi的标签 | string | ||
distance | 距离,单位为米 | int32 | ||
weight | 权重 | int32 | ||
{column} | 自定义列 | 自定义类型 | 自定义列/値,云存储未添加値时不返回 |
http://api.map.baidu.com/geosearch/v3/local?region=北京&ak=您的ak&geotable_id=****&tags=酒店&sortby=distance:1|price:1 &filter=price:200,300 //GET请求
参数名 | 参数含义 | 类型 | 格式 | 备注 |
---|---|---|---|---|
ak | access_key | string(50) | 字符串 | 必须 |
geotable_id | geotable主键 | uint32 | 数字 | 必须 |
q | 检索关键字 | string(45) | 任意汉字或数字,英文字母,可以为空字符 | 必须 |
coord_type | 坐标系 | uint32 | 数字 | 可选
3代表百度经纬度坐标系统 4代表百度墨卡托系统 |
region | 检索区域名称 | String(25) | 市或区的名字,如北京市,海淀区。 | 可选,此接口推荐填写该参数
否则,默认按照全国范围来检索 |
tags | 标签 | string(45) | 空格分隔的多字符串 | 可选
样例:美食 小吃 |
sortby | 排序字段 | string | ”分隔的多个检索条件。
格式为sortby={key1}:value1|{key2:val2|key3:val3}。 最多支持16个字段排序 {keyname}:1 升序 {keyname}:-1 降序 以下keyname为系统预定义的: distance 距离排序 weight 权重排序 |
可选 默认为按weight排序 如果需要自定义排序则指定排序字段 样例:按照价格由便宜到贵排序 sortby=price:1 |
filter | 过滤条件 | string(50) | 竖线分隔的多个key-value对
key为筛选字段的名称(存储服务中定义) 支持连续区间或者离散区间的筛选: a:连续区间 key:value1,value2 b:离散区间 key:[value1,value2,value3,...] |
可选
样例: a:连续区间 样例:筛选价格为9.99到19.99并且生产时间为2013年的项 price:9.99,19.99|time:2012,2012 b:离散区间 筛选价格为8,9,13,并且生产时间为2013年的项 price:[8,9,13]|time:2012,2012 注:符号为英文半角中括号 |
page_index | 分页索引 | uint32 | 当前页标,从0开始 | 可选
默认为0 |
page_size | 分页数量 | uint32 | 当前页面最大结果数 | 可选
默认为10,最多为50 |
callback | 回调函数 | string(20) | js回调函数 | 可选 |
sn | 用户的权限签名 | string(50) | 可选 |
参数名 | 参数含义 | 类型 | 备注 | |
---|---|---|---|---|
status | 状态码 | int32 | 0表示成功,其他值详见状态码说明 | |
size | 分页参数,当前页返回数量 | int32 | ||
total | 分页参数,所有召回数量 | int32 | ||
contents | uid | 数据id | string | |
geotable_id | geotable_id | string | ||
title | poi名称 | string | ||
address | poi地址 | string | ||
province | poi所属省 | string(20) | ||
city | poi所属城市 | string(20) | ||
district | poi所属区 | string(20) | ||
location | 经纬度 | array | ||
coord_type | 坐标系定义 | int32 | 可选
3代表百度经纬度坐标系统 4代表百度墨卡托系统 | |
tags | poi的标签 | string | 多个tag用空格分隔 | |
distance | 距离,单位为米 | int32 | ||
weight | 权重 | int32 | ||
{column} | 自定义列 | 自定义类型 | 自定义列/値,云存储未添加値时不返回 |
http://api.map.baidu.com/geosearch/v3/detail/{uid} //GET请求
参数名 | 参数含义 | 类型 | 备注 |
---|---|---|---|
ak | access_key | string(50) | 必须 |
geotable_id | geotable表主键 | int32 | 必选 |
coord_type | 坐标系 | uint32 | 可选
3代表百度经纬度坐标系统 4代表百度墨卡托系统 |
sn | 用户的权限签名 | string(50) | 可选 |
参数名 | 参数含义 | 类型 | 备注 | |
---|---|---|---|---|
status | 状态码 | int32 | 0代表成功,其它取值含义另行说明 | |
size | 分页参数,当前页返回数量 | int32 | ||
total | 分页参数,所有召回数量 | int32 | ||
contents | uid | 数据id | string | |
geotable_id | geotable_id | string | ||
title | Poi地址 | string | ||
address | poi名称 | string | ||
province | poi所属省 | string | ||
city | poi所属城市 | string(20) | ||
district | poi所属区 | string(20) | ||
location | 经纬度 | array | ||
coord_type | 坐标系定义 | int32 | 3代表百度经纬度坐标系统,4代表百度墨卡托系统 | |
tags | poi的标签 | string | ||
distance | 距离,单位为米 | int32 | ||
weight | 权重 | int32 | ||
{column} | 自定义列 | 自定义类型 | 自定义列/値,云存储未添加値时不返回 |
状态码 | 定义 | 注释 |
---|---|---|
0 | 正常 | |
1 | 服务器内部错误 | 该服务响应超时或系统内部错误,请留下联系方式 |
10 | 上传内容超过8M | Post上传数据不能超过8M |
101 | AK参数不存在 | 请求消息没有携带AK参数 |
102 | MCODE参数不存在,mobile类型mcode参数必需 | 对于Mobile类型的应用请求需要携带mcode参数,该错误码代表服务器没有解析到mcode |
200 | APP不存在,AK有误请检查再重试 | 根据请求的ak,找不到对应的APP |
201 | APP被用户自己禁用,请在控制台解禁 | |
202 | APP被管理员删除 | 恶意APP被管理员删除 |
203 | APP类型错误 | 当前API控制台支持Server(类型1), Mobile(类型2, 新版控制台区分为Mobile_Android(类型21)及Mobile_IPhone(类型22))及Browser(类型3),除此之外其他类型认为是APP类型错误 |
210 | APP IP校验失败 | 在申请SERVER类型应用的时候选择IP校验,需要填写IP白名单,如果当前请求的IP地址不在IP白名单或者不是0.0.0.0/0就认为IP校验失败 |
211 | APP SN校验失败 | SERVER类型APP有两种校验方式IP校验和SN校验,当用户请求的SN和服务端计算出来的SN不相等的时候提示SN校验失败 |
220 | APP Referer校验失败 | 浏览器类型的APP会校验referer字段是否存且切在referer白名单里面,否则返回该错误码 |
230 | APP Mcode码校验失败 | 服务器能解析到mcode,但和数据库中不一致,请携带正确的mcode |
240 | APP 服务被禁用 | 用户在API控制台中创建或设置某APP的时候禁用了某项服务 |
250 | 用户不存在 | 根据请求的user_id, 数据库中找不到该用户的信息,请携带正确的user_id |
251 | 用户被自己删除 | 该用户处于未激活状态 |
252 | 用户被管理员删除 | 恶意用户被加入黑名单 |
260 | 服务不存在 | 服务器解析不到用户请求的服务名称 |
261 | 服务被禁用 | 该服务已下线 |
301 | 永久配额超限,限制访问 | 配额超限,如果想增加配额请联系我们 |
302 | 天配额超限,限制访问 | 配额超限,如果想增加配额请联系我们 |
401 | 当前并发量已经超过约定并发配额,限制访问 | 并发控制超限,请控制并发量或联系我们 |
402 | 当前并发量已经超过约定并发配额,并且服务总并发量也已经超过设定的总并发配额,限制访问 | 并发控制超限,请控制并发量或联系我们 |
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表示百度墨卡托米制坐标
Place Suggestion API默认输入输出坐标类型为百度坐标(BD09),同时可通过参数("coord_type","ret_coordtype")控制输入输出坐标类型。输入坐标支持以上三种坐标系,输出坐标支持-国测局坐标(GCJ02)和百度坐标(BD09)
注意:不同类型坐标如需转换,请使用百度地图开放平台提供的标准坐标转换接口。请勿使用其他渠道提供的坐标转换方法,以免影响坐标转换精度。
每个开发者账号每天调用“云检索服务”API 服务的总次数(即配额)是有限的。
每个开发者账号每天调用“云检索服务”API 服务的总次数(即并发量)是有限的。
若需要更高配额和并发量,请申请开发者认证以获取更高配额和更及时的技术支持。
同一个账号下的HTTP/HTTPS请求,配额,并发共享。
配额及默认并发量说明如下
分类 | 未认证 | 个人认证 | 企业认证 |
---|---|---|---|
日配额(次) | 100,000 | 300,000 | 3,000,000 |
分钟并发数(次/分钟) | 6,000 | 12,000 | 30,000 |
请检查请求URL中,geotable_id是否正确传值,是否对应云储存中存储数据的数据表ID。
请检索用于存储数据的云存储服务版本号。目前云存储服务分V4和V3两个版本,两个版本数据互不相同,需要使用对应版本的云检索服务才能完成检索。
服务已知问题。目前云检索先召回数据表所有poi,然后根据检索条件过滤数据。
数据统计发生在第一步,故会出现统计不准确badcase。我们会在后期优化这一问题。
2013年10月24日
V2.0
2014年11月7日
V2.1
2014年1月20日
V3.0
提高位置检索的实时性和稳定性
优化TAG过滤和文件检索的方式和性能
优化增加geohash空间索引和地域索引,进一步提升空间检索性能
优化独立存储和检索空间,从建库到检索支持开发者数据计算的无干扰运营
请求参数:新增可选参数“coord_type”
响应参数下,新增返回参数“coord_type”,值为2种,3代表经纬度坐标系统,4代表墨卡托系统。
-
文档根本没法用
-
文档水平很差
-
文档水平一般
-
文档不错
-
文档写的很好