微信小程序实现轨迹回放的示例代码


Posted in Javascript onDecember 13, 2019

在微信小程序实现轨迹回放的效果

1、wxml

<map id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="16"
 bindcontroltap="controltap" bindmarkertap="markertap" markers="{{markers}}" polyline="{{polyline}}"
 bindregionchange="regionchange" show-location style="width: 100%; height:{{height}}px;" ></map>

 <view class="padding flex flex-wrap justify-between align-center bg-white">
  <button class='cu-btn bg-green shadow sm' bindtap='beginTrack'> 开始 </button>
  <button class='cu-btn bg-orange shadow sm' bindtap='pauseTrack'> 暂停 </button>
  <button class='cu-btn bg-red shadow sm' bindtap='endTrack'> 结束 </button>
 </view>

2、js

//index.js
//获取应用实例
const app = getApp()

Page({
 data: {
  StatusBar: app.globalData.StatusBar,
  CustomBar: app.globalData.CustomBar,
  height: wx.getSystemInfoSync().windowHeight,
  latitude: 0,
  longitude: 0,
  playIndex: 0,  
  timer: null,
  markers: [],
  polyline: [],
  pointsInfo:[]
 },
 regionchange(e) {
  //console.log(e.type)
 },
 markertap(e) {
  //console.log(e.markerId)
 },
 controltap(e) {
  //console.log(e.controlId)
 },
 beginTrack:function(e){

 },
 onLoad: function (options){
  var that = this;
  wx.request({
   url: 'http://**/getTrack',
   data: { 
    beginTime:"开始时间",
    endTime:"结束时间"
   },
   method: "post",
   success: function (res) {
    that.setData({
     pointsInfo:res.data.pointsInfos,
     polyline: [{
      points: res.data.points,
      color: "#FF0000DD",
      width: 4,
      dottedLine: true
     }],
     markers: [{
      iconPath: '../../img/location.jpg',
      id: 0,
      latitude: res.data.points[0].latitude,
      longitude: res.data.points[0].longitude,
      width: 30,
      height: 30,
      title: that.data.brandNumber,
      callout: {
       content: that.data.brandNumber + ' \n 时间:' + res.data.pointsInfos[0].create_time + ' \n 速度:' + res.data.pointsInfos[0].speed + ' km/h',
       color: "#000000",
       fontSize: 13,
       borderRadius: 2,
       bgColor: "#fff",
       display: "ALWAYS",
       boxShadow: "5px 5px 10px #aaa"
      }
     }],
     latitude: res.data.points[0].latitude,
     longitude: res.data.points[0].longitude,
    })
   }
  })
 },
 /**
  * 开始
  */
 beginTrack:function(){
  var that = this;
  var i = that.data.playIndex == 0 ? 0 : that.data.playIndex;
  that.timer = setInterval(function () {
   i ++
   that.setData({
    playIndex: i,
    latitude: that.data.polyline[0].points[i].latitude,
    longitude: that.data.polyline[0].points[i].longitude,
    markers: [{
     iconPath: '../../img/car/e0.png',
     id: 0,
     latitude: that.data.polyline[0].points[i].latitude,
     longitude: that.data.polyline[0].points[i].longitude,
     width: 30,
     height: 30,
     title: that.data.brandNumber,
     callout: {
      content: that.data.brandNumber + ' \n 时间:' + that.data.pointsInfo[i].create_time + ' \n 速度:' + that.data.pointsInfo[i].speed + ' km/h',
      color: "#000000",
      fontSize: 13,
      borderRadius: 2,
      bgColor: "#fff",
      display: "ALWAYS",
      boxShadow: "5px 5px 10px #aaa"
     }
    }]
   }) 
   if ((i+1) >= that.data.polyline[0].points.length) { 
    that.endTrack();
   }
  }, 500) 
 }, 
 /**
  * 暂停
  */
 pauseTrack:function(){
  var that = this; 
  clearInterval(this.timer)
 },
 /**
  * 结束
  */
 endTrack:function(){
  var that = this; 
  that.setData({
   playIndex: 0,
   latitude: that.data.polyline[0].points[0].latitude,
   longitude: that.data.polyline[0].points[0].longitude,
   markers: [{
    iconPath: '../../img/car/e0.png',
    id: 0,
    latitude: that.data.polyline[0].points[0].latitude,
    longitude: that.data.polyline[0].points[0].longitude,
    width: 30,
    height: 30,
    title: that.data.brandNumber,
    callout: {
     content: that.data.brandNumber + ' \n 时间:' + that.data.pointsInfo[0].create_time + ' \n 速度:' + that.data.pointsInfo[0].speed + ' km/h',
     color: "#000000",
     fontSize: 13,
     borderRadius: 2,
     bgColor: "#fff",
     display: "ALWAYS",
     boxShadow: "5px 5px 10px #aaa"
    }
   }]
  }) 
  clearInterval(this.timer)
 }
})

后台数据使用的是百度鹰眼的数据。最终效果:

微信小程序实现轨迹回放的示例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery必须知道的一些常用特效方法及使用示例(整理)
Jun 24 Javascript
利用了jquery的ajax实现二级联互动菜单
Dec 02 Javascript
JavaScript实现删除,移动和复制文件的方法
Aug 05 Javascript
基于javascript实现仿百度输入框自动匹配功能
Jan 03 Javascript
javascript html5摇一摇功能的实现
Apr 19 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
Dec 24 Javascript
微信小程序用户信息encryptedData详解
Aug 24 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
Jan 27 Javascript
Jquery动态列功能完整实例
Aug 30 jQuery
js实现淘宝首页的banner栏效果
Nov 26 Javascript
解决vue-router 嵌套路由没反应的问题
Sep 22 Javascript
如何使用JavaScript策略模式校验表单
Apr 29 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
Dec 13 #Javascript
vue中使用elementUI组件手动上传图片功能
Dec 13 #Javascript
使用uni-app开发微信小程序的实现
Dec 13 #Javascript
webpack DllPlugin xxx is not defined解决办法
Dec 13 #Javascript
微信小程序关键字变色实现代码实例
Dec 13 #Javascript
Servlet返回的数据js解析2种方法
Dec 12 #Javascript
微信小程序实现横向滚动导航栏效果
Dec 12 #Javascript
You might like
php mssql 日期出现中文字符的解决方法
2009/03/10 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
PHP CURL post数据报错 failed creating formpost data
2016/10/16 PHP
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
Bootstrap源码解读网格系统(3)
2016/12/22 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
微信小程序如何获取用户头像和昵称
2019/09/23 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
Python使用functools实现注解同步方法
2018/02/06 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
python文件拆分与重组实例
2018/12/10 Python
python3 下载网络图片代码实例
2019/08/27 Python
美国老牌主机服务商:iPage
2016/07/22 全球购物
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
网络技术支持面试题
2013/04/22 面试题
艺术爱好者的自我评价分享
2013/10/08 职场文书
办公室年终个人自我评价
2013/10/28 职场文书
餐厅考勤管理制度
2014/01/28 职场文书
浪费资源的建议书
2014/03/12 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
2016年12月份红领巾广播稿
2015/12/21 职场文书