微信公衆號其實是h5頁面,有些功能想要在微信中兼容性好,能夠使用微信提供的jdk來實現。git
微信頁面不支持直接喚醒其餘的地圖app,可是能夠使用openLocation間接的打開其餘地圖app。ajax
實例:從當前位置導航到你的目的地json
在代碼裏引入微信提供的jdk,而後config你須要的功能函數,以後才能使用這些函數api
//數據所有是經過接口獲取到 wx.config({ debug: false,// 開啓調試模式,調用的全部api的返回值會在客戶端alert出來 appId: data.AppId,// 必填,公衆號的惟一標識 timestamp: data.Timestamp,// 必填,生成簽名的時間戳 nonceStr: data.NonceStr, //生成簽名的隨機串 signature: data.Signature, //簽名 jsApiList: ['openLocation']// 必填,須要使用的JS接口列表 });
wx.openLocation({ latitude: tlat,//目的地latitude longitude: tlng,//目的地longitude name: '江北機場T3航站樓', address: '重慶 江北機場T3航站樓', scale: 15//地圖縮放大小,可根據狀況具體調整 });
注意:openLocation傳入的座標必須是火星座標微信
//經緯度轉換 function transformBD (lat, lng, type, callback) { var url;
var self = this; if (type == 'gcj02') { //百度座標轉爲火星座標 url = "https://api.map.baidu.com/geoconv/v1/?coords=" + lng + "," + lat + "&from=5&to=3&ak=XXXXXXXXXX";//注意latitude 和longitude參數的順序 } else { //'bd09ll' //轉爲百度座標 url = "https://api.map.baidu.com/geoconv/v1/?coords=" + lng + "," + lat + "&from=1&to=5&ak=XXXXXXXXXXXXXX"; } $.ajax({ url: url, success: function (data, status, xhr) { if (status == 'success') { var point = data.result[0]; //y爲lat,x爲lng callback.call(self, point.y, point.x); } }, dataType: 'jsonp' }); }
流程:app
使用openLocation打開微信自帶的騰訊地圖->選擇右下角的綠色按鈕->選擇地圖app,喚醒app會自動將你在openLocation中傳入的目的地座標帶入函數