wx獲取地理位置
阿新 • • 發佈:2018-09-11
content error: check pen ont ever 驗證 spl utf
1.公眾號配置。
2.引入js
一個放在根目錄下的txt文件。
3.1)第一個ajax為獲取後臺傳給的wx.config需要的參數;wx.ready().通過ready接口處理成功驗證.然後才是wx.getLocation().獲取到經度緯度之後,調用百度地圖api,然後將獲取的經緯度參數傳到api接口,返回對應的city和province;
2)因為是微信授權的api,所以登陸的時候需要獲取之前掃碼進入時候帶的微信code等信息,編碼轉換問題,encodeURIComponent(location.href.split(‘#‘)[0]),獲取進入時候的url?號後的參數;
$.ajax({ type:"get", url:config.api+"/user/JsApiCheck?url="+encodeURIComponent(location.href.split(‘#‘)[0]), dataType: ‘json‘, async: false, contentType: "application/json; charset=utf-8", success:function(msg){ console.log(msg.data.jsApiCheck); wx.config({ debug:true, // 開啟調試模式 appId: msg.data.jsApiCheck.appId, // 必填,公眾號的唯一標識 timestamp:msg.data.jsApiCheck.timestamp , // 必填,生成簽名的時間戳 nonceStr: msg.data.jsApiCheck.noncestr, // 必填,生成簽名的隨機串 signature: msg.data.jsApiCheck.sign,//必填,簽名, jsApiList: ["getLocation"] // 必填,需要使用的JS接口列表, }) } }); var latitude, longitude; wx.ready(function(){ wx.getLocation({ type: ‘wgs84‘, // 默認為wgs84的gps坐標,如果要返回直接給openLocation用的火星坐標,可傳入‘gcj02‘ success: function (res) { var latitude = res.latitude; // 緯度,浮點數,範圍為90 ~ -90 var longitude = res.longitude; // 經度,浮點數,範圍為180 ~ -180。 var speed = res.speed; // 速度,以米/每秒計 var accuracy = res.accuracy; // 位置精度 },fail:function(res){ alert(res); },complete:function(res){ /* alert("complete"+JSON.stringify(res)); */ latitude = res.latitude; // 緯度,浮點數,範圍為90 ~ -90 longitude = res.longitude; // 經度,浮點數,範圍為180 ~ -180。 getlat(); } }); }) function getlat(){ $.ajax({ type:"get", url:"http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location="+latitude+","+longitude+"&output=json&pois=1&ak=XXHuea5MbHQVRH6DoLCme5QQiYAxnNng", dataType: ‘jsonp‘, async: false, contentType: "application/json; charset=utf-8", success:function(res){ /*alert(JSON.stringify(res));*/ alert(res.result.addressComponent.province); alert(res.result.addressComponent.city); //初始化 var Storage=window.localStorage; Storage.setItem(‘province‘,res.result.addressComponent.province); Storage.setItem(‘city‘,res.result.addressComponent.city); },error:function(res){ alert("error"+JSON.stringify(res)); } }); }
wx獲取地理位置