zoukankan      html  css  js  c++  java
  • uniapp小程序实现定位

    https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.onLocationChange.html

    // #ifdef MP-WEIXIN
    //
    定位方法 getUserLocation: function() { var _this = this; wx.getSetting({ success: (res) => { // res.authSetting['scope.userLocation'] == undefined 表示 初始化进入该页面 // res.authSetting['scope.userLocation'] == false 表示 非初始化进入该页面,且未授权 // res.authSetting['scope.userLocation'] == true 表示 地理位置授权 if (res.authSetting['scope.userLocation'] != undefined && res.authSetting[ 'scope.userLocation'] != true) { //未授权 wx.showModal({ title: '请求授权当前位置', content: '需要获取您的地理位置,请确认授权', success: function(res) { if (res.cancel) { //取消授权 wx.showToast({ title: '拒绝授权', icon: 'none', duration: 1000 }) _this.locationRole = false; } else if (res.confirm) { //确定授权,通过wx.openSetting发起授权请求 wx.openSetting({ success: function(res) { if (res.authSetting[ "scope.userLocation"] == true) { wx.showToast({ title: '授权成功', icon: 'success', duration: 1000 }) _this.locationRole = true; //再次授权,调用wx.getLocation的API _this.geo(); } else { wx.showToast({ title: '授权失败', icon: 'none', duration: 1000 }) _this.locationRole = false; } } }) } } }) } else if (res.authSetting['scope.userLocation'] == undefined) { //用户首次进入页面,调用wx.getLocation的API _this.geo(); } else { console.log('授权成功') _this.locationRole = true; //调用wx.getLocation的API _this.geo(); } } }) },
    // 获取定位城市
                geo: function() {
                    var _this = this;
                    wx.showLoading({
                        title: '定位中...',
                        mask: true,
                    })
                    wx.getLocation({
                        type: 'gcj02',
                        success: function(res) {
                            console.log('location111', res)
                            _this.latitude = res.latitude
                            _this.longitude = res.longitude
                            wx.hideLoading()
                            _this.stationDetails()
                        }
                    });
                    new Promise((resolve, reject) => {
                        let _locationChangeFn = (res) => {
                            console.log('location change', res)
                            _this.latitude = res.latitude
                            _this.longitude = res.longitude
                            _this.stationDetails()
                            wx.hideLoading()
                            // wx.offLocationChange(_locationChangeFn)
                        }
                        wx.startLocationUpdate({
                            success: (res) => {
                                console.log(res, 5656);
                                wx.onLocationChange(_locationChangeFn)
                                resolve()
                            },
                            fail: (err) => {
                                console.log('获取当前位置失败', err)
                                wx.hideLoading()
                                reject()
                            }
                        })
                    })
    
                    
                },
                // #endif
  • 相关阅读:
    LeetCode 258. Add Digits
    LeetCode 257. Binary Tree Paths
    LeetCode 周赛 184
    js算法初窥05(算法模式02-动态规划与贪心算法)
    js算法初窥04(算法模式01-递归)
    js算法初窥03(搜索及去重算法)
    js算法初窥02(排序算法02-归并、快速以及堆排序)
    js算法初窥01(排序算法01-冒泡、选择、插入)
    用js来实现那些数据结构16(图02-图的遍历)
    用js来实现那些数据结构15(图01)
  • 原文地址:https://www.cnblogs.com/web-aqin/p/15384318.html
Copyright © 2011-2022 走看看