uniapp、hbuilderx做微信小程序,获取当前城市定位(省份国家街道等)
获取用户当前位置分为3步
1.获取位置用户请求权限
2.获取经纬度
3.经纬度转换为城市
一.获取位置用户请求权限
获取权限的目的主要是因为避免转换不了城市的报错(可能出现不提示“需要先请求用户权限”的信息,进而导致后续报错或没反应)
1.在项目里的需要的页面里使用button按钮绑定获取定位事件
<button type="default" @click="getLocation">点击获取定位</button>
2.js部分
getLocation() {wx.getLocation({success(res){ }}) //或者使用wx.authorize也行,但后续会使用getLocation获取经纬度,所以直接用getLocation更少代码//wx.authorize({// scope: 'scope.userLocation'//})
}
写完这些后,点击按钮会提示错误(以上两种情况都需要配置不然会报错)
(以上两种方式都会报类似的错误)位置授权要先在app.json里声明,提示getLocation 需要在app.json中声明permission字段。
解决办法:
在manifest.json中加入下面这段代码
"permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示" //描述用途的文字}}
操作如下图所示:
当完成配置后,再点击按钮会调起获取权限请求。在用户同意权限后,可在后续完成当前位置的获取。
下图为调起的获取权限请求
二.获取经纬度
二.1 使用微信小程序自带接口wx.getLocation获取当前位置的经纬度
注:如果之前的获取位置权限请求被拒,这里不会有提示而直接进入fail的回调,就会一直显示fail的回调。1.可以在微信开发者平台上真机调试的旁边—清缓存—清除授权数据。2.可以用下面的让用户去往设置页面进行勾选
wx.getLocation({success(res){console.log("wx.getLocation获取到的结果")console.log(res) //这里包含了经维度console.log(res.latitude) console.log(res.longitude) },fail(res){console.log("未拿取到当前位置")}
})
附加:使用小程序弹窗重新调起,让用户手动勾选
wx.showModal({content: '检测到您没打开位置消息功能权限,是否去设置打开?',confirmText: "确认",cancelText: "取消",success: function(res) {console.log(res);//点击“确认”时打开设置页面if (res.confirm) {wx.openSetting({ //这里调起获取权限的位置success: (res) => {}})} else {console.log('用户点击取消')}}
})
三.经纬度转城市定位
三.1 需要前往地图官网申请专属Key,有很清楚的操作流程 腾讯位置服务
三.2到第5步时。我们这里使用逆地址解析:它的方法:reverseGeocoder(options:Object)。
具体js代码:
//这里引入的js文件是你第3步下载的文件,可放在任意位置。我这里是放在pages同级的unit(新建的目录)里的。
let QQMapWX = require('../../unit/qqmap-wx-jssdk.min.js')
// 实例化API核心类
let qqmapsdk = new QQMapWX({key: '这里填写你申请的Key' // 必填
});
let that = this
//经纬度转城市位置
qqmapsdk.reverseGeocoder({location:{latitude: res.latitude, //这里是之前获取到的经纬度longitude: res.longitude},success(rres) {console.log("经纬度转换地址坐标")console.log(rres) //这里包含了很多信息,如有需要可以自行取console.log("转换后的位置信息(市)")console.log(rres.result.ad_info.city)that.city = rres.result.ad_info.city}
})
下面是获取的定位的代码与效果图(其中地图部分没做演示)
<view>{{city == "" ? "定位": city}} </view>
data(){return{city:""}
}
uniapp、hbuilderx做微信小程序,获取当前城市定位(省份国家街道等)相关推荐
- 微信小程序获取当前城市定位
获取当前城市 一般需要二步骤 1 getLocation 获取精度,维度 2 然后请求,百度,高度,腾讯题图转换即可 这里以百度地图为例 代码如下 wx.getLocation({success: f ...
- 微信小程序-获取当前城市位置
微信小程序-获取当前城市位置 1, 获取当前地理位置,首先要拿到用户的授权wx.openSetting: 2,微信的getLocation接口,获取当前用户的地理位置(微信返回的是经纬度,速度等参数) ...
- uniapp|微信小程序获取当前城市名称--逆地址解析
六年代码两茫茫,不思量,自难忘 6年资深前端主管一枚,只分享技术干货,项目实战经验 关注博主不迷路~ 文章目录 问题 解决步骤 看文档 逆地址解析 1. 创建应用 2. uniapp配置 3. 代码部 ...
- php根据地理位置签到,微信小程序获取地理位置实现定位签到功能
为了保证签到定位的精确性,要求开启GPS定位.小程序成功精确获取地理位置打卡签到,需要三步授权验证: 地理位置的系统开关(系统GPS开关是否打开) --系统级 允许微信使用定位的开关 (微信是否有获取 ...
- 微信小程序获取当前城市地址
var QQMapWX = require('../../utils/qqmap-wx-jssdk.js'); var qqmapcity_name:"",onLoad: func ...
- 微信小程序开发之城市定位(腾讯位置服务)
微信小程序实现城市定位功能 一.定位当前城市信息的步骤: 步骤1:获取当前地理位置,首先要拿到用户的授权 wx.openSeting 步骤2:调用 wx.getLocation获取当前用户的地理位置( ...
- 微信小程序开发之城市定位
背景: 在进行小程序开发时,有一个定位城市的需求,下面就来讲讲怎么实现这个功能的吧 解决方案: 小程序的wx.getLocation()获得是经纬度并不包含地名,所以要通过经纬度用相应的地图转换出地名 ...
- 微信小程序获取百度地图定位
1.指定按钮获取定位 <van-col class="playActive" @click="getLocal()" span="5" ...
- 小程序 获取当前城市位置-高德地图
微信小程序 wx.getLocation 只能获取到经纬度,想要获取具体城市信息,需要使用地图插件.公司要求使用 高德地图,在使用上,几个地图的代码步骤都差不多. 目录 1. 查看官方文档 1.1 申 ...
最新文章
- CF 529B Group Photo 2 (online mirror version)
- Windows server 2012 活动目录回收站
- 显示非模式窗口和模式窗口
- Spring Annotations我从没有机会使用第2部分:@ConfigurationProperties
- Flowable 6.4.1数据库自动建表错误 SQLSyntaxErrorException: Table 'flowable.act_id_property' doesn't exist
- mysql数据库导入导出和密码修改
- MATLAB: 你不知道的12个基础知识
- Hi3516A开发--电阻分压阻值计算
- IDEA 创建工作空间 (空项目) 项目组
- 有些CAD通过Arcgis程序读取后,发现面积不对
- Mac技巧之更改苹果电脑开机画面的技巧
- 【劫持】网页被注入广告
- Thread.currentThread.interrupt()
- 大厂Redis day2 自用笔记
- syl——linux学习(一)
- VisionPro通过SN码连接相机
- H5+ 调用Barcode 实现二维码扫一扫
- android网络电话源码
- vue echarts 多个图表 后台数据填充到页面,并自适应
- Android使用Intent发送短信SMS
热门文章
- HTML+CSS制作家乡旅游网页(杭州旅游网页设计dw制作)
- ADAS推高毫米波雷达需求,上游企业如何跟进?
- Apple Watch已出现在巴黎柯莱特时尚店橱窗
- Blockchain技术之区块链的概念和起源以及区块链的运行方式、发展前景和应用领域分析
- 服务器数据库信息从哪里看,怎查看云服务器上的数据库信息
- android手机的扩容教程,解决手机系统空间不足
- 微信端跳转外部浏览器进行apk文件下载的实现原理及源码
- 假设二叉树采用二叉链存储结构,编写一个算法,求出二叉树中的叶子结点数,并设计主函数调用上述算法。
- 【经营智慧】002.赚钱主要靠知识和智慧
- Android Freetype的学习过程总结