当用户在地图的搜索框输入地点的关键词时,此时搜索框下拉列表将会有相关词供用户选择,即根据输入文本片段即显示相关的匹配信息,节省了用户的输入成本。

一、功能介绍

关键词输入提示接口可以用于获取输入关键字的补完与提示,帮助用户快速输入。可以通过配合前端程序实现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. 完整案例源码

  • 腾讯位置服务案例

原文作者:一头小山猪

基于腾讯地图的输入自动提示与补全功能相关推荐

  1. java 输入提示_Java实现输入自动提示与补全功能

    一. 场景与目标 在使用 IDE 开发软件时, IDE 会提供一种"智能提示", 根据所输入的字符列出可能的词组: 在日常Web开发中,根据用户输入进行自动提示和补全,也能很好地改 ...

  2. Eclipse 代码无法自动提示和补全

    使用Eclipse写Java程序的过程中发现代码无法自动提示,非常影响效率. 网上找到了解决办法: Preferences > Java > Editor > Content Ass ...

  3. ubuntu 16.04 安装Vundle和YouCompleteMe实现C/C++的代码提示和补全功能

    Vundle是一个插件管理工具,它可以在 .vimrc 中跟踪.管理和自动更新插件.接下来的操作会用到 git 工具,如果没有安装过 git 使用命令sudo apt-get install git安 ...

  4. 图片高亮处理编程_GMT语法高亮-智能提示-代码补全插件

    GMT(Generic Mappint Tools)是地学界应用非常广泛的一款绘图兼数据处理的开源软件.其开发团队也是非常活跃,此软件还在不断的发展和更新中,变得越来越强大.目前已经有164个模块,而 ...

  5. MyEclipse的自动补全功能:输入@或者.没提示

    自动补全功能.一般默认的只有输入 . 的时候来才能自动提示. 配置方法: 1. 打开MyEclipse,然后"window"→"Preferences" 2. ...

  6. 仿新浪邮件输入自动提示jQuery插件

    一个邮箱提示控件,会自动提示你已经预设的邮箱! /** /** * 邮件输入自动提示插件 * author Newton * $('id').mailTip({ * mails: [], 需要提示的邮 ...

  7. Input 如何取消输入自动提示

    Input 如何取消输入自动提示 input 用为日期插件的启动元素时,点击 Input 可能会被浏览器的输入提示挡住,如: 只需要把 input 设置 autocomplete="off& ...

  8. Xcode6中Swift没有智能提示和自动补全功能

    今天在学习Swift的过程中,编写代码,发现没有智能提示和自动补全功能,一阵不适应,在网上溜达了下,找到了解决办法,测试可行 中文系统新建工程,copyright里有日期,2014年,"年& ...

  9. 转:Eclipse自动补全功能轻松设置

    Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件 2012-03-08 21:29:02|  分类: Java |  标签:eclipse  自动补全  设置  |举报|字号 订阅 下 ...

最新文章

  1. 监控摄像机 我们要享受飞行的乐趣
  2. Oracle 分析及动态采样
  3. php json java_php 解析java传过来的json数据
  4. html中index.css里面写什么,css中z-index是什么意思?
  5. 网络爱好者必知的国内十大知名Linux系统版本
  6. hdu 1042 N!(大数)
  7. Proxy server 緩存 jsp html
  8. Java CSV操作(导出和导入)
  9. Codrops 优秀教程:实现效果精美的多层推拉菜单
  10. matlab3db带宽,[转]db,dbm,-3db带宽的定义
  11. 详解几个基本概念“标准差标准误差,方差均方差”
  12. ARM926EJ-S/ARM920T 协处理器 CP14, CP15详解(转载)
  13. 线上bug快速定位小技巧 - chrome实时调试线上js代码
  14. Linux内核关键数据结构,Linux内核数据结构:Radix 树
  15. python超简单趣味编程100例_python趣味编程100例
  16. 【论】A Deep Reinforcement Learning Framework for Rebalancing Dockless Bike Sharing Systems
  17. python画三维坐标图像_用python检索xyz坐标并绘制三维图形
  18. ps怎么给图片加透明边框
  19. 郑豪8.6非农数据提前布局,黄金是延续跌势还是多头反击?美盘操作建议
  20. 如何退出Dos——附DOS命令大全

热门文章

  1. 【java数据科学】1.提取数据以及清洗数据
  2. 安卓 Native+Flutter 应用开发入门资料、亲身实战及踩坑记录
  3. 如何创建index.php文件,index.html是什么意思/文件,index.html怎么创建/打开
  4. ubuntu下安装韩语输入法
  5. 用计算机摇号算不算随机抽样,专家解读摇号原理:随机抽不等于随意抽(2)
  6. iphone itouch 绑定hosts
  7. 树莓派外设开发——超声波
  8. 方差、协方差、标准差、均方差、均方根值、均方误差、均方根
  9. ural 1197. Lonesome Knight
  10. SDIO协议读写SD卡之SD卡简介