地点输入提示服务(又名Place Suggestion API)是一类Web API接口服务;
匹配用户输入内容,提供输入提示功能。常与地点检索服务搭配使用。也可作为轻量级地点检索服务单独使用(不支持复杂检索场景)。
用户可通过该服务,匹配用户输入关键词的地点推荐列表。
在应用方面,可将地点推荐列表展示给用户,用户可通过点击等交互方式,结合地点检索服务,检索用户点击的POI信息,实现地点详情检索功能。
通过关键词和检索城市限制,可满足轻量级地点检索需求,获取地点基础数据
https://api.map.baidu.com/place/v2/suggestion?query=天安门®ion=北京&city_limit=true&output=json&ak=你的ak //GET请求
参数名称 | 是否必须 | 默认值 | 格式 | 备注 |
---|---|---|---|---|
q(query) | 是 | 无 | 上地、天安、中关、shanghai | 输入建议关键字(支持拼音) |
region | 是 | 无 | 北京市、上海市等 | 支持城市及对应百度编码(Citycode)。(指定的区域的返回结果加权,可能返回其他城市高权重结果。若要对返回结果区域严格限制,请使用city_limit参数) |
city_limit | 否 | false | "false"or"true" | 取值为"true",仅返回region中指定城市检索结果 |
location | 否 | 无 | 40.047857537164,116.31353434477 | 传入location参数后,返回结果将以距离进行排序 |
coord_type |
否 | 3 | 坐标类型: 1(WGS84ll即GPS经纬度) 2(GCJ02ll即国测局经纬度坐标) 3(BD09ll即百度经纬度坐标) 4(BD09mc即百度米制坐标) 坐标详细说明 |
可选参数,用于标注请求中「location」参数使用的坐标类型 |
ret_coordtype | 否 | 无 | gcj02ll 坐标详细说明 |
可选参数,添加后POI返回国测局经纬度坐标 若不传该参数,返回结果默认bd09ll(百度经纬度) |
output | 否 | xml | json、xml | 返回数据格式,可选json、xml两种 |
ak | 是 | 无 | E4805d16**********707cdc962045 | 开发者访问密钥,必选。 |
sn | 否 | 无 | Sn校验说明 | 用户的权限签名 |
timestamp | 否 | 无 | 设置sn后该值必选 |
名称 | 类型 | 说明 |
---|---|---|
status | Int | 本次API访问状态,如果成功返回0,如果失败返回其他数字。 |
message | string | 对API访问状态值的英文说明,如果成功返回"ok",并返回结果字段,如果失败返回错误说明。 |
name | string | poi名称,单次请求最多返回10条结果 |
location | object | poi经纬度坐标 |
uid | string | poi的唯一标示,ID |
province | string |
省 |
city | string | 城市 |
cityid | int | 百度城市编码 详情见资源下载citycode编码 |
district | string | 区县 |
adcode | int |
行政区划代码 |
business | string |
商圈 |
tag | string | poi分类。 |
address | string | poi地址。 |
children |
|
poi子点。 |
uid |
string |
poi子点ID,可用于poi详情检索。 |
子点名称。 | ||
show_name |
string |
poi子点简称。 |
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表示百度墨卡托米制坐标
地点输入提示服务默认输入输出坐标类型为百度坐标(BD09ll),同时可通过参数("coord_type","ret_coordtype")控制输入输出坐标类型。输入坐标支持以上三种坐标系,输出坐标支持-国测局坐标(GCJ02)和百度坐标(BD09)
注意:不同类型坐标如需转换,请使用百度地图开放平台提供的标准坐标转换接口。请勿使用其他渠道提供的坐标转换方法,以免影响坐标转换精度。
服务相关配额及并发请求限制请访问开发者权益页面查看。
"region"参数表示检索城市偏重,会增加对应城市返回结果的权重,从而影响返回数据排序。但部分权重较高的其他城市地点,仍有可能召回(如:在北京检索"迪士尼",会返回上海数据)。
若需要限制返回结果仅为"region"参数对应的城市数据,请在使用"region"参数时,同时加上"city_limit=true"参数。
本服务根据query内容进行检索提示时,除了召回检索频率较高的关联POI外,也同时召回检索频率较高的「热词」,这些热词并不是POI。
区分POI和热词,可通过uid等字段是否为空来判断(值为空时是热词)。
业务层如将检索结果展示给用户,可考虑在用户点击热词时,针对热词内容单独发起一次地点检索请求,同时也可在服务端通过uid字段是否为空,过滤掉热词不对用户展示。
地点输入提示非专业地点检索服务,推荐搜索关键词联想场景使用,或作为轻量级检索服务使用。
如有地点详情需求,可以结合地点检索服务使用:
首先通过“地点输入提示”服务,获取POI list。用户点击某POI,根据uid(百度POI ID),再请求“地点检索”服务,获取POI详情数据。
2013年7月5日
V1.0
2015年4月22日
V1.1
2016年10月28日
V1.2
2017年4月25日
V1.3
您可以通过此文件获知百度地图的全国各城市代码(cityCode)。 在使用百度地图API或SDK各种涉及citycode参数的服务时,您可参看此文件传入准确值,如JavaScript API的本地检索服务(根据cityCode获取本地检索结果)、Android SDK离线地图服务(根据cityCode,获取对应城市离线地图)等。
您可以通过此链接获知百度地图POI(兴趣点)的tag引导体系,辅助您检索POI。 如检索query为百度地图的tag“生活服务”,返回的检索结果即包含关键字为“生活服务”的POI、也包含tag为“生活服务”的POI,从而聚焦检索结果。