IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> uniapp、hbuilderx做微信小程序,获取当前城市定位(省份国家街道等) -> 正文阅读

[移动开发]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:""
	}
}

在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:23:57  更:2021-10-09 16:25:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:14:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码