APP搜索附近功能的一种解决方案

为了在APP中根据定位实现搜索附近(POI)的功能,采用百度LBS云服务,将所有POI数据上传后,可以实现该功能。

LBS数据管理地址:在这里标记信息后(支持批量上传)即可开始使用搜索功能。

http://lbsyun.baidu.com/datamanager/datamanage

搜索附近接口地址:

http://api.map.baidu.com/geosearch/v3/nearby

请求方式:

GET

参数:

1{ 2ak:'540b088ff0f926b7d0b6d5a641******', //app key,需要到百度开放平台申请 3geotable_id:89059, //数据表id,在上面的LBS数据管理地址中获取 location=117.118675,39.078544, //用户坐标或经纬度,需要获取定位 4coord_type:3, //坐标类别,3表示百度坐标,请看下面的说明 5radius:1000, //搜索范围,单位米, 6page_index:0 , //页码 7page_size:10 , //每页显示记录条数 8q:'美特斯邦威', //关键词,将对附近的店铺再次匹配搜索,可为空 9 10sortby:distance:1 //按距离升序排列,-1表示降序 11} 12 13 14/** 15coord_type说明,请根据自己获得的location信息来改变该参数,采用百度定位SDK应设置为3, 16 17采用HTML5定位应该设置为1 18 191:GPS经纬度坐标 202:国测局加密经纬度坐标 213:百度加密经纬度坐标 224:百度加密墨卡托坐标 23**/

返回值:

1{ 2 "status": 0, 3 "total": 5,//结果数 4 "size": 5, 5 "contents": [ 6 { 7 "title": "天津", //地点名称 8 "location": [ 9 117.068811, 10 39.062756 11 ], 12 "city": "天津市", 13 "create_time": 1419229456, 14 "geotable_id": 89059, 15 "address": "天津", 16 "tags": "", 17 "province": "天津市", 18 "district": "西青区", 19 "uid": 576117245, 20 "coord_type": 3, 21 "type": 0, 22 "distance": 4650, //距离,单位米 23 "weight": 315 24 }, 25 { 26 "address": "天津市河北区金纬路111号(米兰超市河北店)外1号", 27 "city": "天津市", 28 "create_time": 1419053693, 29 "district": "河北区", 30 "geotable_id": 89059, 31 "icon_style_id": "sid1", 32 "location": [ 33 117.208617, 34 39.155932 35 ], 36 "modify_time": 1419229238, 37 "province": "天津市", 38 "tags": "商铺", 39 "title": "美特斯邦威(金纬路店)", 40 "uid": 574315040, 41 "coord_type": 3, 42 "type": 0, 43 "distance": 11580, 44 "weight": 54 45 }, 46 { 47 "address": "天津市和平区和平路194-196号", 48 "city": "天津市", 49 "create_time": 1419053596, 50 "district": "和平区", 51 "geotable_id": 89059, 52 "icon_style_id": "sid1", 53 "location": [ 54 117.201581, 55 39.135009 56 ], 57 "modify_time": 1419229243, 58 "province": "天津市", 59 "title": "美特斯邦威(和平路店)", 60 "uid": 574314000, 61 "coord_type": 3, 62 "type": 0, 63 "distance": 9515, 64 "weight": 54 65 }, 66 { 67 "address": "天津市河西区大沽南路华润万家南楼北店1楼(近东楼)", 68 "city": "天津市", 69 "create_time": 1419226421, 70 "district": "河西区", 71 "geotable_id": 89059, 72 "icon_style_id": "sid1", 73 "location": [ 74 117.230504, 75 39.103007 76 ], 77 "modify_time": 1419229272, 78 "province": "天津市", 79 "title": "美特斯邦威(南楼北店)", 80 "uid": 576070688, 81 "coord_type": 3, 82 "type": 0, 83 "distance": 10037, 84 "weight": 54 85 }, 86 { 87 "address": "天津市和平区滨江道153号一层至二层和华中路2号的一层至四层", 88 "city": "天津市", 89 "create_time": 1419053799, 90 "district": "和平区", 91 "geotable_id": 89059, 92 "icon_style_id": "sid1", 93 "location": [ 94 117.204502, 95 39.128208 96 ], 97 "modify_time": 1419229233, 98 "province": "天津市", 99 "tags": "商铺", 100 "title": "美特斯邦威(滨江道店)", 101 "uid": 574316229, 102 "coord_type": 3, 103 "type": 0, 104 "distance": 9238, 105 "weight": 54 106 } 107 ] 108}

返回参数详细表格,可供参考:

这样,就实现了搜索附近功能,依托百度的云平台,我们可以得到比较稳定的服务。

百度LBS开放平台还提供了一个搜索指定区域的接口,和搜索附近是不一样的,可以根据实际需求来选用,详细内容这里就不介绍了,有兴趣的可以参考百度LBS云的开发者文档。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

uniapp(vue通用)整合腾讯位置服务SDK---多平台小程序通用

专属邀请链接这里进入腾讯位置服务官网:https://lbs.qq.com?lbs_inviteG9MRFLG(https://lbs.qq.com?lbs_inviteG9MRFLG)项目开始于20210127晚8uniapp模板地址https://ext.dcloud.net.cn/plugin?id4067(htt

Java日期时间API系列31

  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前