微信小程序 —— 地圖上選擇位置

需求分析: 一些小程序打開後,以文字形式顯示用戶所在位置,若是用戶以爲不許,能夠打開地圖,在地圖上本身選擇位置,選擇完成後,顯示的用戶的位置會發生變化.今天咱們就來看一下如何實現這個功能

具體實現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了~~
相關文章
相關標籤/搜索