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

Wesley13
• 阅读 734

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

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

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

搜索附近接口地址:

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

请求方式:

GET

参数:

{
ak:'540b088ff0f926b7d0b6d5a641******', //app key,需要到百度开放平台申请
geotable_id:89059, //数据表id,在上面的LBS数据管理地址中获取 location=117.118675,39.078544, //用户坐标或经纬度,需要获取定位
coord_type:3, //坐标类别,3表示百度坐标,请看下面的说明
radius:1000, //搜索范围,单位米,
page_index:0 , //页码
page_size:10 , //每页显示记录条数
q:'美特斯邦威', //关键词,将对附近的店铺再次匹配搜索,可为空

sortby:distance:1  //按距离升序排列,-1表示降序
}


/**
coord_type说明,请根据自己获得的location信息来改变该参数,采用百度定位SDK应设置为3,

采用HTML5定位应该设置为1

1:GPS经纬度坐标
2:国测局加密经纬度坐标
3:百度加密经纬度坐标
4:百度加密墨卡托坐标
**/

返回值:

{
    "status": 0,
    "total": 5,//结果数
    "size": 5,
    "contents": [
        {
            "title": "天津", //地点名称
            "location": [
                117.068811,
                39.062756
            ],
            "city": "天津市",
            "create_time": 1419229456,
            "geotable_id": 89059,
            "address": "天津",
            "tags": "",
            "province": "天津市",
            "district": "西青区",
            "uid": 576117245,
            "coord_type": 3,
            "type": 0,
            "distance": 4650, //距离,单位米
            "weight": 315
        },
        {
            "address": "天津市河北区金纬路111号(米兰超市河北店)外1号",
            "city": "天津市",
            "create_time": 1419053693,
            "district": "河北区",
            "geotable_id": 89059,
            "icon_style_id": "sid1",
            "location": [
                117.208617,
                39.155932
            ],
            "modify_time": 1419229238,
            "province": "天津市",
            "tags": "商铺",
            "title": "美特斯邦威(金纬路店)",
            "uid": 574315040,
            "coord_type": 3,
            "type": 0,
            "distance": 11580,
            "weight": 54
        },
        {
            "address": "天津市和平区和平路194-196号",
            "city": "天津市",
            "create_time": 1419053596,
            "district": "和平区",
            "geotable_id": 89059,
            "icon_style_id": "sid1",
            "location": [
                117.201581,
                39.135009
            ],
            "modify_time": 1419229243,
            "province": "天津市",
            "title": "美特斯邦威(和平路店)",
            "uid": 574314000,
            "coord_type": 3,
            "type": 0,
            "distance": 9515,
            "weight": 54
        },
        {
            "address": "天津市河西区大沽南路华润万家南楼北店1楼(近东楼)",
            "city": "天津市",
            "create_time": 1419226421,
            "district": "河西区",
            "geotable_id": 89059,
            "icon_style_id": "sid1",
            "location": [
                117.230504,
                39.103007
            ],
            "modify_time": 1419229272,
            "province": "天津市",
            "title": "美特斯邦威(南楼北店)",
            "uid": 576070688,
            "coord_type": 3,
            "type": 0,
            "distance": 10037,
            "weight": 54
        },
        {
            "address": "天津市和平区滨江道153号一层至二层和华中路2号的一层至四层",
            "city": "天津市",
            "create_time": 1419053799,
            "district": "和平区",
            "geotable_id": 89059,
            "icon_style_id": "sid1",
            "location": [
                117.204502,
                39.128208
            ],
            "modify_time": 1419229233,
            "province": "天津市",
            "tags": "商铺",
            "title": "美特斯邦威(滨江道店)",
            "uid": 574316229,
            "coord_type": 3,
            "type": 0,
            "distance": 9238,
            "weight": 54
        }
    ]
}

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

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

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

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
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
代码哈士奇 代码哈士奇
3年前
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
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这