【小程序】微信小程序获取用户位置,经纬度及逆地址解析

这篇具有很好参考价值的文章主要介绍了【小程序】微信小程序获取用户位置,经纬度及逆地址解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

在针对小程序埋点时,需要获取到用户的位置,uniapp有自带获取位置的方法uni.getLocation其中可以获取到经纬度,以及中文地址address,但是中文地址仅APP端支持,小程序是用不了的。现在只能拿到经纬度,再通过经纬度逆地址解析,得到中文地址。


提示:以下是本篇文章正文内容,下面案例可供参考

一、获取经纬度

获取经纬度的方法有很多:

  1. uniapp可以通过uni.getLocation获取
  2. wx.getLocation获取
  3. 三方api/sdk获取

1,需要在app.json里面声明你所需要用的接口

在uniapp的manifest.json源码视图里面进行声明

如果不声明是无法正常使用接口的,更多接口声明可以查看微信官方规则

"requiredPrivateInfos": [
	    "getLocation"
	  ],

注意:如果小程序上线,需要提前申请开通使用接口的权限且只针对部分主体提供使用权限,否则审核不会通过 微信官方申请

2,注意保护用户的隐私,需要经过用户授权之后才可以获取用户位置,如果用户拒绝了也是无法获取到的。
在app.json里面配置获取用户定位权限的提示:

"permission": {
	    "scope.userLocation": {
	      "desc": "你的位置信息将用于小程序位置接口的效果展示" // 定位
	    }
	  },

3,判断用户是否已经授权定位,如果没有授权则弹出获取定位权限的提示,可通过wx.getSetting拿到用户的授权信息,没有授权弹出授权请求,用户可拒绝,若之前用户已经授权则不会弹出请求,直接返回success

/**
 * 获取定位授权
 * author: xjw
 */
	wx.getSetting({
		success(res) {
			if (!res.authSetting['scope.userLocation']) {
				wx.authorize({
					scope: 'scope.userLocation',
					success() {
						// 用户已授权位置权限
						// 可以继续访问位置信息
					},
					fail() {
						// 用户拒绝了位置权限
						// 可以相应地处理拒绝情况
						console.log("用户拒绝了位置权限")
					},
				});
			} else {
				// 用户已经授权了位置权限
				// 可以继续访问位置信息
				console.log("用户已经授权了位置权限")
			}
		},
	});
}

4,获取经纬度
通过wx.getLocation拿到用户的经纬度

wx.getLocation({
	type: 'wgs84',
	success: function(res) {
		console.log('用户已授权位置权限,经纬度:' + res.longitude, res.latitude);
	},
	fail: function() {
		console.log("获取地理位置失败")
	}
})

二、逆地址解析

小程序wx.getLocation只能获取经纬度, 这时候想要具体地址就需要借助第三方API(逆地址解析) 我这边第三方以腾讯位置服务举例

1.申请API Key

现在先注册腾讯地图,获取key
https://lbs.qq.com/dev/console/key/manage
小程序获取经纬度,小程序,微信小程序,uni-app,javascript,前端

2.使用WebService API

获取到api密钥之后就可以使用API了

wx.request({
		url: 'https://apis.map.qq.com/ws/geocoder/v1/',
		data: {
			location: `${latitude},${longitude}`,
			key: 'API_KEY',
			get_poi: 0,
			output: 'json'
		},
		success(res) {
			var address = res.data.result.address;
		},
		fail(error) {
			console.error('逆地理编码失败:', error);
		}
	});

该处使用的url网络请求的数据。接收参数经纬度
返回的res.data.result.address中就有解析出来的中文地址文章来源地址https://www.toymoban.com/news/detail-705377.html


到了这里,关于【小程序】微信小程序获取用户位置,经纬度及逆地址解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包