uniapp微信小程序获取定位(通过经纬度获取地址)

项目要求首页有个定位功能,但是uni.getLocation在小程序端只能获取到经纬度,拿不到地址
uniapp官网有说明这点:uni.getLocation(OBJECT) | uni-app官网

 

解决方案如下:

1. 配置manifest.json

 2.引入腾讯地图(需要申请key并下载sdk):微信小程序JavaScript SDK | 腾讯位置服务

 

圈住的5点建议全做,否则可能会出现问题 

第2步不做可能报错:位置转经纬度~此key未开启WebserviceAPI服务功能

3.代码

在需要的页面引入

import QQMapWX from "../static/sdk/qqmap-wx-jssdk.min.js";
onLoad() {

	this.getLocation()   //获取当前定位
			
},
getLocation(){
	const _this = this
	uni.authorize({
		scope: 'scope.userLocation',
		success() {
			let location = {
				longitude: 0,
				latitude: 0,
				province: "",
				city: "",
				area: "",
				street: "",
				address: "",
			};
			uni.getLocation({
				type: 'gcj02',
				geocode: true,
				success: function(res) {
					uni.setStorageSync('latitude', _this.latitude)
					uni.setStorageSync('longitude', _this.longitude)
					location.longitude = res.longitude;
					location.latitude = res.latitude;
					const qqmapsdk = new QQMapWX({
						key: 'PBZBZ-74CE3-7ND3P-3OVWM-HDZIT-QRF23'  //申请的key
					});
					qqmapsdk.reverseGeocoder({
						location,
					    success: function(res) {
							let info = res.result;
							location.province = info.address_component.province;
							location.city = info.address_component.city;
							location.area = info.address_component.district;
							location.street = info.address_component.street;
							location.address = info.address;
							console.log(location);
                        },
					});
				},	
				fail: function(err) {
					uni.showToast({
							title: '获取定位失败',
							icon: 'none'
					})
				}
			})
		}
	})
},

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值