关于地图开发:腾讯地图-关键词输入提示结尾附视频

7次阅读

共计 2797 个字符,预计需要花费 7 分钟才能阅读完成。

一、性能介绍

关键词输出提醒接口能够用于获取输出关键字的补完与提醒,帮忙用户疾速输出。能够通过配合前端程序实现 Autocomplete(主动实现)的成果。

二、密钥申请

1. 用户登录

关上腾讯位置服务主页:https://lbs.qq.com,点击右上角的登录按钮:

2. 验证信息

点击控制台,进入开发者信息界面,补全根本用户信息,实现验证。

3. 申请密钥

点击左侧 key 与配额下的 key 治理:
点击创立新密钥,填写 Key 名称、形容、验证码,期待审核通过:
密钥申请通过后,能够点击设置按钮批改名称及形容,并能够抉择启用的产品,以及对调用规定进行限度:
同时,能够在查看配额界面查看各接口的用量状况:

三、操作步骤

1. 开发文档入口

滑动到上方菜单的开发文档 -> 抉择服务端下的 WebService API:
点击左侧的关键词输出提醒:
中转地址:https://lbs.qq.com/service/webService/webServiceGuide/webServiceSuggestion

2. 接口测试

能够间接应用 Postman 工具来测试,或者应用 Postwomen(Postman 他女朋友,唉,连工具都成双入对了,写个代码都要被虐,罢了,好好打工)。
由文档可知,接口的申请类型为GET,默认的数据返回格局为JSON。必填参数有三个:

  • key: 开发者密钥
  • keyword:搜寻关键字
  • region:搜寻范畴,必填的限度条件(能够通过 region_fix 来设置是否扩大范围)

3. 返回后果

以下为返回后果,为了残缺展现数据结构,删减了 data 中的局部数据:

{
    "status": 0,
    "message": "query ok",
    "count": 100,
    "data": [
        {
            "id": "14178584199053362783",
            "title": "中关村",
            "address": "北京市海淀区",
            "category": "地名地址: 热点区域: 商圈类",
            "type": 0,
            "location": {
                "lat": 39.981047,
                "lng": 116.320787
            },
            "adcode": 110108,
            "province": "北京市",
            "city": "北京市",
            "district": "海淀区"
        },
        {
            "id": "2199027905900",
            "title": "中关村[地铁站]",
            "address": "地铁 4 号线大兴线",
            "category": "基础设施: 交通设施: 地铁站",
            "type": 2,
            "location": {
                "lat": 39.984055,
                "lng": 116.316478
            },
            "adcode": 110108,
            "province": "北京市",
            "city": "北京市",
            "district": "海淀区"
        }
    ],
    "request_id": "1136352410315519097"
}

字段含意可见下表(可在接口文档中找到):
四、应用案例
因为接口为纯 HTTP 接口,所以在成果实现上还须要应用我的项目中的一些组件。本例应用最简的 jquery-ui 来实现 autocomplete 成果,下载地址为:http://jqueryui.com/download/。

1. 根底界面

首先构建一个根底界面,创立一个文本框,并按照 jquery-ui 的用法进行绑定。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <!-- 引入 css 款式文件 -->
        <link rel="stylesheet" type="text/css" href="css/jquery-ui.min.css"/>
        <!-- 引入所需的 jquery 库文件 -->
        <script src="js/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script>
        <!-- 引入 jquery-ui 文件 -->
        <script src="js/jquery-ui.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            $(function() {$("#search").autocomplete({// 为文本框实现绑定
                    source: function(request,response){// 应用自定义函数解决}
                });
            });
        </script>
    </head>
    <body>
        <div class="ui-widget">
            <label for="search"> 搜寻框: </label>
            <input type="text" id="search">
        </div>
    </body>
</html>

成果如下:

2. 动静响应

在 source 对应的函数中须要实现接管文本框的值,以及向接口申请数据,最终进行数据封装的过程。须要留神,因为该过程波及到用户的一直操作,所以倡议将 ajax 设置为同步形式。

                $("#search").autocomplete({// 为文本框实现绑定
                    source: function(request,response){
                        // 从 request 对象中取得文本框内容
                        var keyword = request.term;
                        // 定义数组,封装最终后果
                        var obj = [];
                        $.ajax({
                            url:"https://apis.map.qq.com/ws/place/v1/suggestion",
                            type:"get",
                            dataType:"json",
                            async:false,// 敞开异步
                            data:{
                                "key":"替换为本人的 key",
                                "keyword":keyword,
                                "region":"北京"
                            },success:function(resp){for(i in resp.data){
                                    // 此处能够依据须要自定义要显示的内容以及封装的数据
                                    obj.push({"label":resp.data[i].title + "["+resp.data[i].province+"-"+resp.data[i].city+"-"+resp.data[i].district+"]",
                                        "value":resp.data[i].title
                                    });
                                    //label 为提醒显示的内容
                                    //value 为选中后补全呈现在文本框中的内容
                                }
                            }
                        });
                        // 将 obj 最为后果返回
                        response(obj);
                    }
                });

测试可知,反对中文与拼音的检索,最终成果如下:

  • 拼音搜寻

  • 选中后
    此处性能须要的成果能够依据我的项目的须要进行调整。

3. 残缺案例源码

  • 腾讯位置服务案例

五、视频中转

视频地址:https://www.bilibili.com/video/BV1b54y1p7Ny,喜爱的小伙伴儿肯定要三连加关注哦~

https://www.bilibili.com/vide…

正文完
 0