微信小程序 map地图授权

小程序  在开发授权方面的问题:

1.当用户拒绝了授权的情况下,如何再次获得权限 

   小程序更新后,不在支持调用接口方式(https://developers.weixin.qq.com/community/develop/doc/0000a26e1aca6012e896a517556c01

 

解决办法:

wxml:

<view class='layer-mask' wx:if="{{isLayer}}">

<view class='layer-tips'>

<view class='title'>提示</view>

<view class='desc'>若不开启位置授权,则无法签到</view>

<!-- 授权按钮 -->
<van-button size="large" open-type="openSetting" bind:opensetting="bind:opensetting" class='btn'>确定</van-button>

</view>

</view>

 

js:

 //显示时调用一次
onShow() {
    let that = this;

    wx.showLoading({
      title:"加载中...."
    });
    //获取地址
    const getAddress = new Promise((resolve, reject) => {
      that.loadAddress(function (res) {
        resolve(res);

        return res;
      })
    }).then((res) => {
       //获取完成执行
      that.getPoject(res);
    })
  },
  //获取地址
  loadAddress(callback){
    var that = this;

    wx.getLocation({
      type: 'gcj02', //返回可以用于wx.openLocation的经纬度
      success: function (res) {
        
        //控制弹窗是否显示
        that.setData({
          isLayer: false
        })
        
        wx.showLoading({
          title: "加载中...."
        });
        
        var latitude = res.latitude//维度
        var longitude = res.longitude//经度
        console.log(res);
        let data = that.data;
        data.markers[0].latitude = latitude;
        data.markers[0].longitude = longitude;

        let param={
          location: latitude + "," + longitude,
          key:"*******************************"
        }
        //key值  到腾讯去注册申请(https://lbs.qq.com/webservice_v1/guide-geocoder.html)
        //接口请求url (https://apis.map.qq.com/ws/geocoder/v1/)

        recordModel.getRecordMap(param).then((result)=>{
          data.markers[0].address = result.result.address;
          callback(data)
        })


      },
      fail:function(){
        wx.hideLoading();
        //当用户拒绝了授权情况下,显示弹窗  用按钮去获取授权
        console.log("用户拒绝了授权");
        that.setData({
          isLayer:true
        })
      }

    })

  },
  //获取权限
  getSettingLocation(){
    console.log("授权调用")
    let that=this;
    wx.getSetting({
      success(res) {
        if (!res.authSetting['scope.userLocation']) {
          wx.authorize({
            scope: 'scope.userLocation',
            success() {
              // 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
              console.log(333334444)
              // wx.startRecord()
            },
            fail(){
              console.log("授权调用失败");
              // that.getSettingLocation();
            }
          })
        }
      }
    })
  },

 

### 回答1: 微信小程序是一种轻量化的应用程序,可以在微信中直接使用。它具有快速开发、轻便易用等优点。其中,微信小程序map组件可以用于定位当前位置。 首先,在小程序开发工具中添加map组件,可以利用微信提供的API进行对地图的操作。然后,在页面上添加按钮或者其他交互方式,触发定位功能。可以通过微信提供的wx.getLocation接口获取当前地理位置,将其坐标转换为经纬度等信息,再在地图上显示出来。 微信小程序map组件还可以加入自定义的标记点、路线等功能。比如,可以在地图上设置一个目标地点,当用户到达该地点时进行提醒。除此之外,还可以将地图与其他组件联动,实现更多实用性功能。 总之,通过微信小程序map组件定位当前位置可以在很多场景下得到运用,例如共享单车、打车等领域,也为用户带来更加便利和舒适的出行体验。 ### 回答2: 微信小程序的定位功能可以让用户在地图上查看自己的当前位置,并且可以进行定位导航等一系列应用操作。 要使用微信小程序的定位功能,首先需要获取用户的授权。用户可以通过点击相关按钮进行授权,同时小程序需要向用户说明获取授权的作用和用途。 获取授权后,就可以通过小程序调用微信地图API,实现对用户当前位置的定位功能。用户当前位置会在地图上进行标注,并且可以实现定位导航、查询周边信息等功能。 除了获取授权和调用API之外,开发者还需要考虑到用户体验和隐私保护等方面。比如,在页面显示用户当前位置时要注意保护用户隐私,使用合适的地图标识等。 总体来说,微信小程序的定位功能可以方便用户在不同场景下使用地图,同时也增加了小程序的实用性。对开发者而言,需要注意用户隐私和开发规范等方面的问题,以保证用户体验和小程序功能的完善。 ### 回答3: 微信小程序中提供了一种方便的方法,可以使用map组件定位当前位置。这个组件可以用来显示地图和标记位置,还可以选择地图的种类和放大程度。在小程序中,我们只需要在wxml文件中添加map组件,然后在js文件中调用API即可进行位置定位。 首先,我们需要引入wx.getLocation() API,这个API可以获得当前用户的地理位置。通过这个API获得的经纬度信息,我们可以通过地图定位到用户的当前位置。在js文件中添加如下代码,就可以实现定位操作: ``` wx.getLocation({ type: 'gcj02', success(res) { const latitude = res.latitude const longitude = res.longitude const speed = res.speed const accuracy = res.accuracy } }) ``` 其中,type参数可以设置定位方式,gcj02表示国测局加密经纬度坐标,还有其他选项,具体可以查看文档。通过上述代码,我们得到用户的经纬度位置,并可以通过map组件显示在地图上。 ``` <map latitude="{{latitude}}" longitude="{{longitude}}" scale="{{scale}}" markers="{{markers}}" show-location="{{true}}" /> ``` 最后,在wxml文件中加入map组件即可。其中,latitude和longitude参数分别表示经纬度位置,scale参数表示显示比例尺,markers参数可以设置地图标记,show-location参数表示是否显示定位标记。 总之,通过微信小程序map组件和wx.getLocation() API,我们可以轻松实现定位当前位置的操作。这一功能在很多小程序中都会用到,比如地图导航、外卖送餐等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值