微信小程序 使用腾讯地图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 相关文章推荐
jquery键盘事件介绍
Jan 31 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
Apr 12 Javascript
jQuery的deferred对象使用详解
Aug 20 Javascript
jQuery焦点图轮播特效代码分享(3款)
Sep 05 Javascript
4种JavaScript实现简单tab选项卡切换的方法
Jan 06 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
Aug 23 Javascript
基于JavaScript实现选项卡效果
Jul 21 Javascript
angular动态表单制作
Feb 23 Javascript
React Native 图片查看组件的方法
Mar 01 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
Aug 07 Javascript
通过循环优化 JavaScript 程序
Jun 24 Javascript
vue实现路由监听和参数监听
Oct 29 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
高分R级DC动画剧《哈莉·奎茵》第二季正式预告首发
2020/04/09 欧美动漫
php中的时间显示
2007/01/18 PHP
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
php中try catch捕获异常实例详解
2014/11/21 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
javascript获取当前日期时间及其它操作函数
2011/01/11 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
JavaScript实现的encode64加密算法实例分析
2015/04/15 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
理论讲解python多进程并发编程
2018/02/09 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
Django视图、传参和forms验证操作
2020/07/15 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
pandas按条件筛选数据的实现
2021/02/20 Python
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
COS美国官网:知名服装品牌
2019/04/08 全球购物
关于抽烟的检讨书
2014/02/25 职场文书
人事专员的职责
2014/02/26 职场文书
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL