uniapp 小程序使用腾讯地图搜索位置地点,获取省、市、县地区码的方法

一、调用uni.authorize()方法获取用户授权

二、调用官方uni.chooseLocation()方法获取当前地址的名称和经纬度

uni.chooseLocation({
							success: (res) => {
                                console.log(res.latitude)
                                console.log(res.longitude)
								
								
							}
						});

但是此方法只能获取到经纬度,并不能直接获取到省、市、县的地区码,因此我们需要进行 “逆地理位置解析”reverseGeocoder(options:Object)方法来获取,详情见:WebService API | 腾讯位置服务

 三、登录腾讯位置服务注册账号,申请key值,引入封装好的腾讯地图JS模块

js模块引入地址:https://mapapi.qq.com/web/mapComponents/geoLocation/v/geolocation.min.js

import map from "../../common/qqmap-wx-jssdk1.2/qqmap-wx-jssdk.js"
 

// 实例化API核心类
var qqmapsdk = new map({
	key: 'key值' // 必填,去腾讯地图申请
});
qqmapsdk.reverseGeocoder({
	//Object格式
		location: {
			latitude: “当前位置纬度”,
			longitude: “当前位置经度”
		},
		success: (res) => {
			console.log(res.result.ad_info); //位置信息
		},
		fail: (error) => {
			// console.error(error);
		}
});

整体详情代码如下:

import map from "../../common/qqmap-wx-jssdk1.2/qqmap-wx-jssdk.js";
export default {
    methods: {
        maphq() {
			uni.authorize({
				scope: 'scope.userLocation',
				success: () => {
					uni.chooseLocation({
						success: (res) => {
		                
							// 实例化API核心类
							var mapsdk = new map({
								key: 'key值' // 必填
							});
							mapsdk.reverseGeocoder({
								//Object格式
								location: {
									latitude: res.latitude,
									longitude: res.longitude
								},
								success: (res) => {
										console.log(res.result.ad_info); //城市信息
								},
								fail: (error) => {
										// console.error(error);
								}
							});
						}
					});
				},
				fail: () => {
					uni.showModal({
						title: '提示',
						content: '位置权限获取失败,请重新授权!',
						success: function(res) {
							if (res.confirm) {
								console.log('用户点击确定');
								this.ditu()
							} else if (res.cancel) {
								console.log('用户点击取消');
							}
						}
					});
				}
			})
		},
    }
}

 欢迎指正

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值