需求分析: 一些小程序打開後,以文字形式顯示用戶所在位置,若是用戶以爲不許,能夠打開地圖,在地圖上本身選擇位置,選擇完成後,顯示的用戶的位置會發生變化.今天咱們就來看一下如何實現這個功能
具體實現html
// index.wxml // 顯示位置信息(默認顯示自動定位後的位置信息) <view class='address' bindtap='onChangeAddress'> {{address}} </view> // 點擊這塊能夠改變位置(改成本身肯定後的地址)
// index.js var QQMapWX = require('../../libs/qqmap-wx-jssdk.js'); // 首先引入騰訊地圖的API var qqmapsdk; Page({ /** * 頁面的初始數據 */ data: { address: "", // 地址信息 src:"" , m_latitude: null, m_longitude: null }, /** * 生命週期函數--監聽頁面加載 */ onLoad: function (options) { /* 判斷是第一次加載仍是從position頁面返回 若是從position頁面返回,會傳遞用戶選擇的地點 若是不是從position頁面返回,而是第一次進入,則會自動定位用戶的位置,顯示用戶的位置 */ if (options.address != null && options.address != '') { //設置變量 address 的值 this.setData({ address: options.address }); } else { // 實例化API核心類 qqmapsdk = new QQMapWX({ //此key須要本身申請 key: 'MNXBZ-G5TWD-GY...' }); var that = this; // 調用接口 qqmapsdk.reverseGeocoder({ // 這裏沒有寫location選項,是由於默認就是當前位置 success: function (res) { // 獲取默認下的地址 that.setData({ address: res.result.address }); }, fail: function (res) { //console.log(res); }, complete: function (res) { //console.log(res); } }); }, // 點擊跳轉至 onChangeAddress: function (e) { wx.navigateTo({ url: "/pages/position/position" }); } }
// position.wxml <view class="page-body"> <view class="page-section page-section-gap"> <map id="qqMap" style="width: 100%; height: 300px;" latitude="{{latitude}}" longitude="{{longitude}}" show-location></map> </view> </view>
// position.js var QQMapWX = require('../../libs/qqmap-wx-jssdk.js'); var qqmapsdk; Page({ data: { latitude: 0,//地圖初次加載時的緯度座標 longitude: 0, //地圖初次加載時的經度座標 name:"" //選擇的位置名稱 }, onLoad: function () { // 實例化API核心類 qqmapsdk = new QQMapWX({ key: 'MNXBZ-G5TWD-GYF42-HHZJL-2W2J3-PVBX4' }); this.moveToLocation(); }, //移動選點 moveToLocation: function () { var that = this; // 打開地圖選擇位置 wx.chooseLocation({ success: function (res) { // res.name爲地址名稱 console.log(res.name); //選擇地點以後返回到原來頁面 wx.navigateTo({ url: "/pages/index/index?address="+res.name }); }, fail: function (err) { console.log(err) } }); } });
切記要判斷用戶是否給與了位置信息的權限,提示用戶給與權限哦
騰訊地圖apigit
ok了~~