微信小程序 使用腾讯地图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 html 静态页面传参数
Apr 10 Javascript
javascript div 遮罩层封锁整个页面
Jul 10 Javascript
基于datagrid框架的查询
Apr 08 Javascript
jquery中val()方法是从最后一个选项往前读取的
Sep 06 Javascript
基于Javascript实现二级联动菜单效果
Mar 04 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
Jan 17 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
Apr 12 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
Dec 11 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
Mar 05 Javascript
angular ng-model 无法获取值的处理方法
Oct 02 Javascript
React Hooks 实现和由来以及解决的问题详解
Jan 17 Javascript
浅谈 JavaScript 沙箱Sandbox
Nov 02 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
多php服务器实现多session并发运行
2006/10/09 PHP
PHP文件下载类
2006/12/06 PHP
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
js实现canvas图片与img图片的相互转换的示例
2017/08/31 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
VUE写一个简单的表格实例
2019/08/06 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
Python中常用信号signal类型实例
2018/01/25 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
客服服务心得体会
2013/12/30 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
教师先进个人材料
2014/12/17 职场文书
教导主任个人总结
2015/03/03 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
党性修养心得体会2016
2016/01/21 职场文书
2016年五一促销广告语
2016/01/28 职场文书