本文介紹使用元件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...