概述

地点搜索(search接口),提供三类范围条件的搜索功能:

  1. 指定城市的地点搜索:如在北京搜索餐馆;
  2. 圆形区域的地点搜索:一般用于指定位置的周边(附近)地点搜索,如,搜索颐和园附近的酒店;
  3. 矩形区域的地点搜索:在地图应用中,往往用于视野内搜索,因为显示地图的区域是个矩形。

请求URL

该请求为GET请求

http://apis.map.qq.com/ws/place/v1/search

URL编码

GET请求,注意参数值要进行URL编码(推荐encodeURI),一般浏览器会自动进行url编码,小心二次编码。

示例:keyword=%e9%85%92%e5%ba%97,boundary=region(%e5%8c%97%e4%ba%ac,0)

请求参数

参数 必填 说明 示例
keyword POI搜索关键字,用于全文检索字段 keyword=酒店,注意键值要进行URL编码(推荐encodeURI),如keyword=%e9%85%92%e5%ba%97
boundary 搜索地理范围
[查看boundary语法]
示例1,指定地区名称,不自动扩大范围:
boundary=region(北京,0)
示例2,周边搜索(圆形范围):boundary=nearby(39.908491,116.374328,1000)
示例3,矩形区域范围:boundary=rectangle(39.9072,116.3689,39.9149,116.3793)
filter 筛选条件:

最多支持五个分类

[查看filter语法]
搜索指定分类
filter=category=公交站
搜索多个分类
filter=category=大学,中学
排除指定分类
filter=category<>商务楼宇
(注意参数值要进行url编码)
orderby 排序方式
[查看orderby语法]
例1:orderby=_distance desc
例2:orderby=_distance 升序(低到高)
page_size 每页条目数,最大限制为20条 page_size=10
page_index 第x页,默认第1页 page_index=2
key 开发密钥(Key) key=d84d6d83e0e51e481e50454ccbe8986b
output 返回格式:
支持JSON/JSONP,默认JSON
output=json
callback JSONP方式回调函数 callback=function1

boundary

搜索地理范围,支持三个范围函数:

[指定地区名称]:

指定地区名称:boundary=region(city_name [,auto_extend][,lat,lng])

     city_name:检索区域名称, 城市名字,如北京市。

     auto_extend:可选参数。 取值1:默认值,若当前城市搜索无结果,则自动扩大范围;
                                                      取值0:仅在当前城市搜索。

      lat,lng:可选参数。 当用户使用泛关键词搜索时(如酒店、超市),这类搜索多为了查找附近,
                                            使用此参数,搜索结果以此坐标为中心,返回就近地点,体验更优。

[周边搜索]:

圆形范围 :boundary=nearby(lat,lng<中心坐标>,radius<半径/米>)

[矩形搜索]:

矩形范围 :boundary=rectangle(lat,lng<左下/西南>, lat,lng<右上/东北>)


orderby

排序方式:

基本语法: columnName<排序列> sortord[排序方式];
目前在boundary=nearby() 圆形区域范围查询时,支持按POI到中心点距离的排序:_distance(注意下划线)。 格式:_distance desc(降序); _distance asc(升序)。

使用示例:

例1:orderby=_distance desc

例2:orderby=_distance   //升序(低到高)

filter

筛选条件:搜索指定分类

最多支持五个分类

基本语法: columnName<筛选列>=value<列值>;
目前支持按POI分类筛选(例:category=分类词),若指定多个分类用英文逗号分隔,支持的分类词可参考:

筛选条件:排除指定分类

基本语法: columnName<筛选列>=value<列值>

*.筛选有电话的地点:tel<>null

*.按POI分类筛选:例 category=分类词,若指定多个分类用英文逗号分隔,最多支持5个;

*.按排除指定POI分类筛选:例:category<>分类词,指获取除指定分类以外的地点,若指定多个分类用英文逗号分隔,最多支持5个;

附录:腾讯地图POI分类关键词

1. 正常搜索结果

名称 类型 必填 说明
status number 状态码,0为正常,
310请求参数信息有误,
311Key格式错误,
306请求有护持信息请检查字符串,
110请求来源未被授权
message string 状态说明
count number 本次搜索结果总数
data array 搜索结果POI数组,每项为一个POI对象
id string POI唯一标识
title string POI名称
address string 地址
tel string 电话
category string POI分类
type number POI类型,值说明:0:普通POI / 1:公交车站 / 2:地铁站 / 3:公交线路 / 4:行政区划
location object 坐标
lat number 纬度
lng number 经度
ad_info object 行政区划信息,目前仅提供adcode
adcode string 行政区划代码
boundary array 轮廓,坐标数组,面积较大的POI会有,如住宅小区
pano object 该POI的街景最佳查看场景及视角信息
id string 街景场景ID,若有pano信息,则ID一定存在
heading number 最佳偏航角(与正北方向夹角,街景相关知识请 点击查看
pitch number 俯仰角
zoom number 缩放级别

-示例a:指定地区名称

//GET请求示例,注意参数值要进行URL编码
//指定地区名称,不自动扩大范围:boundary=region(北京,0)
http://apis.map.qq.com/ws/place/v1/search?
boundary=region(北京,0)
&keyword=成都
&page_size=20
&page_index=1
&orderby=_distance
&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77


在线测试
boundary
page_size
page_index
keyword
orderby
key


我要说两句

-示例b:周边搜索

//GET请求示例,注意参数值要进行URL编码
//周边搜索(圆形范围):boundary=nearby(lat,lng<中心坐标>,radius<半径/米>)
http://apis.map.qq.com/ws/place/v1/search?
boundary=nearby(39.908491,116.374328,1000)
&keyword=成都
&page_size=20
&page_index=1
&orderby=_distance
&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77


在线测试
boundary
page_size
page_index
keyword
orderby
key


我要说两句

-示例c:矩形搜索

//GET请求示例,注意参数值要进行URL编码
//矩形区域范围:boundary=rectangle(lat,lng<左下/西南>, lat,lng<右上/东北>)
http://apis.map.qq.com/ws/place/v1/search?
boundary=rectangle(39.907293,116.368935,39.914996,116.379321)
&keyword=成都
&page_size=20
&page_index=1
&orderby=_distance
&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77


在线测试
boundary
page_size
page_index
keyword
orderby
key


我要说两句

2.估算搜索结果

当搜索地点无结果时,本服务会返回地址解析的估算结果,如图:

名称 类型 必填 说明
status number 状态码,0为正常,
310请求参数信息有误,
311Key格式错误,
306请求有护持信息请检查字符串,
110请求来源未被授权
message string 状态说明
count number 本次搜索结果总数
data array 搜索结果POI数组,每项为一个POI对象
geocoder object 地址解析
  result object

返回结果同:地址解析(地址转坐标),

(地址解析结果的result节点)

-示例a:估算结果


3.按城市统计

当搜索范围过大,如 boundary=region(全国) 时,而且keyword的搜索结果在各城市无明显权重特别高的时,将返回各城市搜索结果数量的统计数,您可以将此统计结果展示给用户,供用户缩小城市范围,再次发起搜索使用。

名称 类型 必填 说明
status number 状态码,0为正常,
310请求参数信息有误,
311Key格式错误,
306请求有护持信息请检查字符串,
110请求来源未被授权
message string 状态说明
count number 本次搜索结果总数
data array 搜索结果POI数组,每项为一个POI对象
cluster object 地址解析
  title string 城市名称
count number

根据搜索条件,在该城市搜到的结果数

-示例a:按城市统计

//GET请求示例,注意参数值要进行URL编码
http://apis.map.qq.com/ws/place/v1/search?
boundary=region(全国)
&keyword=kfc
&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77
在线测试
boundary
keyword
key


我要说两句