微信小程序首页地理位置显示

<view class="content">
   <view class="">
     定位地址:{{city}}
   </view>
</view>

Page({

  /**
   * 页面的初始数据
   */
  data: {
    locationStatus:false,//是否定位过
    city:'定位中...'
  },

  onShow() {
    // 判断是否定位过,如果没有定位,就执行定位
    if(this.data.locationStatus==false){
      this.dingwei()
      wx.setStorageSync('locationStatus',true)
      this.setData({
        locationStatus:wx.getStorageSync('locationStatus')
      })
    }else{ //若定位过,直接把本地的定位地址赋值
      this.setData({
        city:wx.getStorageSync('city')
      })
    }
    
  },
  onLoad() {
  },
  

    // 打开设置
    openConfirm(){
      wx.showModal({
        title: '请求授权当前位置',
        content: '需要获取您的地理位置,请确认授权',
        success:(res=>{
          if(res.confirm){
            wx.openSetting();// 打开地图权限设置
          }else if(res.cancel){
            wx.showToast({
              title: '你拒绝了授权,无法获得周边信息',
              icon: 'none',
              duration: 1000                            
            })
          }
        }) 
      })
    },
    // 定位
    dingwei(){
      var that = this
      // 授权
      wx.authorize({
          scope: 'scope.userLocation',
          success() {
          // 定位
             wx.getLocation({
                 type: 'gcj02',
                 success: function (res) {
                     console.log('当前位置的经度:' + res.longitude);
                     console.log('当前位置的纬度:' + res.latitude);
                 var longitude = res.longitude
                 var latitude= res.latitude
                 var location = latitude+','+longitude
                 console.log(location)
            // 逆解析地址 个人秘钥
                 wx.request({
                     url: 'https://apis.map.qq.com/ws/geocoder/v1/?key=个人秘钥&get_poi=1',
                   data:{
                     location:location
                   },
                   method: "get",
                     success: (res) => {
                         console.log(res.data.result.address);
                wx.setStorageSync('city',res.data.result.address)
                that.setData({
                  city:wx.getStorageSync('city')
                })
               
                     }
                 });
                 }
             });
          },
        fail(){    // 拒绝授权
          that.openConfirm();
          console.log("你拒绝了授权,无法获得周边信息")
        }
      })
    },


})

 

posted @ 2021-10-14 10:35  tomingto  阅读(232)  评论(0编辑  收藏  举报