微信小程式實現活動軌跡回放

2021-10-04 21:11:35 字數 1535 閱讀 6183

本文介紹使用元件map和api的mapcontext+wx.getlocation來實現活動軌跡回放。

最終效果:

1. 檔案index.wxml**如下,這一塊比較簡單,可自行檢視,不做過多分析:

2. 檔案index.js存放所有功能的邏輯**,相對比較複雜,下面分開來分析幾個重點方法:

1)方法getdistance用於計算兩個座標點之間的距離,引數為兩個座標點的經緯度;

2)方法translatemarker使用translatemarker實現marker平移,為了實現多點之間連續平移,在內部巢狀方法translatemarker;

3)wx.getlocation用來獲取當前的座標點。

tips:

points中的「+-」0.01等,無特別意義,可自己任意修改;實際情況可呼叫介面獲取軌跡資料;

duration = getdistance * 2中的2,無特別意義,可根據實際情況自行調整。

// 全屏地圖路線圖並動畫移動

// polyline中的points可以獲取json用來繪製軌跡圖

// 獲取應用例項

page(,

onready: function() ,

onload: function() , , , , ];

// 標記點集合

let markers = points;

markers.map((value, index) => );

this.setdata(],

markers: markers,

latitude: res.latitude,

longitude: res.longitude

})this.translatemarker(markers);}})

},// 平移marker,帶動畫

translatemarker: function(markers) ;

let getdistance = that.getdistance(markers[that.data.i].latitude, markers[that.data.i].longitude, markers[that.data.i + 1].latitude, markers[that.data.i + 1].longitude);

let duration = getdistance * 2; // 根據距離計算平移的速度,看起來保持勻速

this.mapctx.translatemarker();

// 小於長度減1才執行

if (that.data.i < markers.length - 1)

},fail(err)

})},

// 計算兩座標點之間的距離

getdistance: function(lat1, lng1, lat2, lng2)

})

微信小程式 手寫簽名 微信小程式實現電子簽名功能

x.wxml bindtouchmove canvasmove bindtouchend canvasend touchcancel canvasend binderror canvasiderrorcallback 上傳簽名 清除簽名 js var context null 使用 wx.creat...

(微信小程式)一 初識微信小程式

需要看的 先是檔案目錄 一 pages 他存放於多個頁面 如 index log頁面。可以把他裡面的每個資料夾看成乙個整體。這個整體存放著 html css 和 資料 1 index資料夾 存放的index頁面的目錄。2 index.js 他可以處理得到 ajax 或自定義定義的資料。把得到的值封裝...

微信小程式

2.單獨設定某一頁面下的頂部欄的背景顏色,在其對應的.json檔案下修改即可 3.this.setdata 注意 onload函式下面執行的是非同步操作,非同步操作裡面this.data.直接賦值,是無效的,必須使用this.setdata this.setdata msg he llo wor l...