微信小程序 使用腾讯地图SDK详解及实现步骤


Posted in Javascript onFebruary 28, 2017

微信小程序 使用腾讯地图SDK详解及实现步骤

 近期在做一款彩票服务类项目中用到了腾讯地图提供的小程序解决方案,拿来给大家分享一下!

使用起来非常简单,就是一些功能还有待完善。

官方文档:http://lbs.qq.com/qqmap_wx_jssdk/index.html

步骤:

  1. 申请开发者密钥(key):申请密匙
  2. 下载微信小程序JavaScriptSDK,微信小程序JavaScriptSDK v1.0
  3. 安全域名设置,需要在微信公众平台添加域名地址https://apis.map.qq.com
  4. 小程序示例
// 引入SDK核心类
var QQMapWX = require('../../libs/qqmap-wx-jssdk.js');
var qqmapsdk;
Page({
 onLoad: function () {
   // 实例化API核心类
   qqmapsdk = new QQMapWX({
     key: '申请的key'
   });
 },
 onShow: function () {
   // 调用接口
   qqmapsdk.search({
     keyword: '彩票',
     success: function (res) {
       console.log(res);
     },
     fail: function (res) {
       console.log(res);
     },
   complete: function (res) {
     console.log(res);
   }
 });
})

结果效果图:

微信小程序 使用腾讯地图SDK详解及实现步骤

去购彩.png

5.核心类

5.1 地点搜索search(options:Object)

通过关键词keyword搜索周边poi,比如“酒店”“餐饮”“娱乐”“学校”等

去购彩界面的实现:

5.1.1 buy.js

// 引入腾讯地图SDK核心类
var QQMapWX = require('../../utils/qqmap-wx-jssdk.js');
var util = require("../../utils/util.js");
var qqmapsdk;
Page({
 data: {
resData: []
 },
 onLoad: function (options) {

// 实例化腾讯地图API核心类

qqmapsdk = new QQMapWX({

 key: 'HPNBZ-B426V-CZQPP-UN4R6-QYOF2-MYFU3'//此处使用你自己申请的key

});
 },
 onShow: function () {

var that = this;

// 腾讯地图调用接口

qqmapsdk.search({

 keyword: '彩票',

 page_size: 20,

 success: function (res) {


console.log(res);


var resData = res.data;


for (var i = 0; i < resData.length; i++) {


 resData[i]._distance = util.formatDistance(resData[i]._distance);//转换一下距离的格式


}


that.setData({resData: resData});

 },

 fail: function(res) {


console.log(res);

 },

 complete: function(res) {


console.log(res);

 }

})
 }
})
// utils/util.js
/**
* 将距离格式化
* <1000m时 取整,没有小数点
* >1000m时 单位取km,一位小数点 
*/
function formatDistance(num) {
 if (num < 1000) {
return num.toFixed(0) + 'm';
 } else if (num > 1000) {

return (num / 1000).toFixed(1) + 'km';
 }
}

5.1.2 buy.wxml 主要样式采用weui

<view class="page">
<view wx:for="{{resData}}" wx:key="shop" class="page__bd">
 <view bindtap="navTo" data-item="{{item}}">
  <view class="weui-panel">
   <view class="weui-panel__bd">
    <view class="weui-media-box weui-media-box_text">
     <view class="weui-media-box__title weui-media-box__title_in-text">{{item.title}}</view>
     <view class="weui-media-box__desc">{{item.address}}</view>
     <view class="weui-media-box__info">
      <view class="weui-media-box__info__meta">电话:{{item.tel}}</view>
      <view class="weui-media-box__info__meta weui-media-box__info__meta_extra">距离:{{item._distance}}</view>
     </view>
    </view>
   </view>
  </view>
 </view>
</view>
</view>

5.2 关键词输入提示getSuggestion(options:Object)

用于获取输入关键字的补完与提示,帮助用户快速输入。

示例:

// 调用接口
qqmapsdk.getSuggestion({
 keyword: '技术',
 success: function(res) {
   console.log(res); 
 },
 fail: function(res) {
   console.log(res);
 },
 complete: function(res) {
   console.log(res);
 }
});

5.3 距离计算calculateDistance(options:Object)

计算一个点到多点的步行、驾车距离。

示例:

// 调用接口
qqmapsdk.calculateDistance({
 mode: 'walking';//步行,驾车为'driving'
 to:[{
   latitude: 39.984060,
   longitude: 116.307520
 }, {
   latitude: 39.984572,
   longitude: 116.306339
 }],
 success: function(res) {
   console.log(res);
 },
 fail: function(res) {
   console.log(res);
 },
 complete: function(res) {
   console.log(res);
 }
});

5.4 另外还有以下功能,就不一一演示了。

  1. getCityList(options:Object):获取全国城市列表数据;
  2. getDistrictByCityId(options:Object):通过城市ID返回城市下的区县;
  3. reverseGeocoder(options:Object):用于获取输入关键字的补完与提示,帮助用户快速输入
  4. geocoder(options:Object):提供由地址描述到所述位置坐标的转换,与逆地址解析reverseGeocoder()的过程正好相反。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
javascript iframe编程相关代码
Dec 28 Javascript
Javascript Web Slider 焦点图示例源码
Oct 10 Javascript
jQuery的$.proxy()应用示例介绍
Apr 03 Javascript
angular.fromJson与toJson方法用法示例
May 17 Javascript
jQuery滑动到底部加载下一页数据的实例代码
May 22 jQuery
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
Jul 31 Javascript
ReactNative 之FlatList使用及踩坑封装总结
Nov 29 Javascript
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
vue-cli 3 全局过滤器的实例代码详解
Jun 03 Javascript
javascript for循环性能测试示例
Aug 07 Javascript
ES6新增的数组知识实例小结
May 23 Javascript
JavaScript parseInt0.0000005打印5原理解析
Jul 23 Javascript
Vue.js父与子组件之间传参示例
Feb 28 #Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
Feb 28 #Javascript
JS对象创建的几种方式整理
Feb 28 #Javascript
js仿淘宝评价评分功能
Feb 28 #Javascript
jQuery布局组件EasyUI Layout使用方法详解
Feb 28 #Javascript
three.js绘制地球、飞机与轨迹的效果示例
Feb 28 #Javascript
JavaScript Uploadify文件上传实例
Feb 28 #Javascript
You might like
世界收音机发展史
2021/03/01 无线电
使用PHP维护文件系统
2006/10/09 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
Zend Framework框架实现类似Google搜索分页效果
2016/11/25 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
JavaScript入门教程 Cookies
2009/01/31 Javascript
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
AngularJS service之select下拉菜单效果
2017/07/28 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
vue实现验证用户名是否可用
2021/01/20 Vue.js
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
在Django的视图(View)外使用Session的方法
2015/07/23 Python
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
python如何统计序列中元素
2020/07/31 Python
Numpy之random函数使用学习
2019/01/29 Python
PageFactory设计模式基于python实现
2020/04/14 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
工商管理专业学生的自我评价
2013/10/01 职场文书
结婚喜宴家长答谢词
2014/01/15 职场文书
社会工作专业自荐信
2014/09/26 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
MongoDB支持的数据类型
2022/04/11 MongoDB