uniapp获取用户位置信息

1.高德开放平台创建应用

2.申请key

3.需要用到逆地理编码  所以选择web服务

4.小程序代码中manifest.json文件配置

"permission": {
			"scope.userLocation": {
				"desc": "你的位置信息将用于展示附近服务"
			}
	},
"requiredPrivateInfos": ["getLocation", "chooseLocation"],

5.获取地址代码

// 获取当前位置
			getLocation() {
				uni.getLocation({
					type: 'gcj02',
					success: async (res) => {
						const {
							latitude,
							longitude
						} = res;
						// 调用高德API
						const key = 换成你自己的key; 
						const url =
							`https://restapi.amap.com/v3/geocode/regeo?key=${key}&location=${longitude},${latitude}`;
						const response = await uni.request({url});
						console.log('用户所在位置', response[1].data.regeocode.addressComponent.city);
					},
					fail: (err) => {
						uni.showToast({
							title: '获取位置失败',
							icon: 'none'
						});
					}
				});
			},

要在uniapp获取定位位置信息,可以使用uniapp自带的API,即`uni.getLocation()`方法。该方法可以获取当前设备的地理位置信息。 使用该方法需要注意以下几点: 1. 首先,需要在`manifest.json`文件中添加对应的权限,如下所示: ```json { "permissions": { "scope.userLocation": { "desc": "获取用户地理位置信息" } } } ``` 2. 调用`uni.getLocation()`方法来获取地理位置信息。该方法接受一个对象参数,可以设置以下属性: - `type`: 定位方式,可选值有`wgs84`(默认)和`gcj02`(国测局加密经纬度坐标) - `altitude`: 是否获取高度信息,默认为`false` - `geocode`: 是否需要逆地址解析,默认为`false`,即不需要获取详细地址信息 - `success`: 成功回调函数 - `fail`: 失败回调函数 - `complete`: 完成回调函数 示例代码如下: ```javascript uni.getLocation({ type: 'gcj02', altitude: true, geocode: true, success: (res) => { console.log(res); }, fail: (err) => { console.log(err); } }); ``` 其中,`res`对象包含以下属性: - `latitude`: 纬度,浮点数,范围为-90~90,负数表示南纬 - `longitude`: 经度,浮点数,范围为-180~180,负数表示西经 - `altitude`: 高度,单位m,只有当`altitude`为`true`时才有 - `horizontalAccuracy`: 水平精度,单位m - `verticalAccuracy`: 垂直精度,单位m,只有当`altitude`为`true`时才有 - `speed`: 速度,单位m/s - `accuracy`: 位置的精度,单位m - `address`: 详细地址信息,只有当`geocode`为`true`时才有 - `errMsg`: 错误信息,调用成功时为`"getLocation: ok"`,调用失败时为具体错误信息 注意:在HbuilderX中需要在manifest.json中添加如下代码: ```json "mp-weixin":{ "appid":"wx*****", "miniprogramRoot": "./", "permission": { "scope.userLocation": { "desc": "获取用户地理位置信息" } } } ``` 其中"wx*****"是你的微信小程序AppID。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值