在之前的 調用百度地圖API的總結 中獲取當前位置信息我用的是 H5 ,其實微信也提供了獲取用戶地理位置的方法,現將這兩種方法都貼出來,看情況選擇使用。
一、H5 獲取當前地理位置得到經緯度
// H5 獲取當前位置經緯度 var location_lon = '',location_lat = ''; // 經度,緯度 if (navigator.geolocation){ navigator.geolocation.getCurrentPosition(function (position) { location_lon = position.coords.longitude; location_lat = position.coords.latitude; // alert('h5經度:'+location_lon);alert('h5緯度:'+location_lat); }); }else { alert("您的設備不支持定位功能"); }
二、微信公眾平台(地理位置)
微信有獲取用戶地理位置的接口,在 wx.config 中配置就可以用了:
wx.config({ debug: true, appId: '', // 必填,公眾號的唯一標識 timestamp: , // 必填,生成簽名的時間戳 nonceStr: '', // 必填,生成簽名的隨機串 signature: '',// 必填,簽名 jsApiList: ['getLocation'] // 必填,需要使用的JS接口列表 });
獲得權限后就可以直接使用 wx.getLocation() 方法獲得用戶的地理位置了:
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; // 位置精度 } });
三、地理位置配合地圖展示
獲得的經緯度可以使用百度地圖或者高德地圖展示,微信內置地圖也可以查看位置:
wx.openLocation({ latitude: 0, // 緯度,浮點數,范圍為90 ~ -90 longitude: 0, // 經度,浮點數,范圍為180 ~ -180。 name: '', // 位置名 address: '', // 地址詳情說明 scale: 1, // 地圖縮放級別,整形值,范圍從1~28。默認為最大 infoUrl: '' // 在查看位置界面底部顯示的超鏈接,可點擊跳轉 });