前段時間有一個關於經過獲取用戶當前經緯度座標,計算出該用戶距離某指定地點之間的距離。由於作這個項目須要可以獲取到比較精確的經緯度座標,剛開始使用的是百度地圖結果發現百度地圖地位不太準確(有時候相差的比較的大,後來瞭解到了百度獲取用戶經緯度與用戶當前使用的網絡有很大的關係),後來換成了高德地圖結果仍是同樣。最後我想恰好作的是個微信網站項目,爲何不使用微信自帶接口呢?因此最後使用了微信JS-SDK來獲取用戶當前地理位置的接口。javascript
關於JS-SDK的使用步驟和timestamp(時間戳),nonceStr(隨機串),signature(簽名),access_token(接口調用憑據)生成獲取的詳細說明在此:http://www.javashuo.com/article/p-wpbycfwn-dm.htmlhtml
微信官方文檔使用說明:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#35java
<script type="text/javascript"> //經過config接口注入權限驗證配置 wx.config({ debug:false, // 開啓調試模式,調用的全部api的返回值會在客戶端alert出來,若要查看傳入的參數,能夠在pc端打開,參數信息會經過log打出,僅在pc端時纔會打印。 appId:'your AppId', // 必填,公衆號的惟一標識 timestamp:'your timestamp', // 必填,生成簽名的時間戳 nonceStr:'your nonceStr', // 必填,生成簽名的隨機串 signature:'your signature',// 必填,簽名 jsApiList: ['getLocation'] // 必填,須要使用的JS接口列表 }); //注意,咱們的經緯度座標是要在頁面加載完成後當即獲取,不須要觸發獲取,所以須要把獲取地理位置的接口放在ready(function(){});裏面 wx.ready(function () { try { 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; // 位置精度 $("#Longitude").val(longitude); $("#Latitude").val(latitude); alert("微信經緯度獲取結果:" + latitude + "經度" + longitude); } }); } catch (e) { console.log(e); } }); </script>
受權公衆號,獲取當前地理位置:git