本文介绍在uni-app中如何使用uni.getLocation和uni.startLocationUpdate获取设备经纬度。重点讲解manifest.json中的权限配置,包括location描述及微信小程序scope.userLocation设置。同时说明type参数支持的wgs84、gcj02和bd09ll坐标系选择,以及用户授权流程与错误处理机制。
以下展示了利用uni.getLocation接口获取用户当前地理坐标的参考实现:
第一步,调用uni.getLocation接口以获取当前的位置数据。
uni.getLocation({
type: 'wgs84', // 坐标类型,默认为wgs84,可选的值为gcj02和bd09ll
success: res => {
// 获取成功,经度和纬度在res.longitude和res.latitude中
console.log('longitude:', res.longitude);
console.log('latitude:', res.latitude);
},
fail: err => {
// 获取失败,err为错误信息
console.log('getLocation err:', err);
}
});若业务场景要求持续监听位置变化,可改用uni.startLocationUpdate接口。
uni.startLocationUpdate({
accuracy: 'high', // 定位精度,可选值为low、medium、high,默认为high
autoStop: false, // 是否自动停止位置更新,默认为false
success: res => {
console.log('longitude:', res.longitude);
console.log('latitude:', res.latitude);
},
fail: err => {
console.log('startLocationUpdate err:', err);
}
});务必注意,获取地理位置前必须获得用户授权。若未获授权,接口将无法返回数据。如需开启定位权限,请在manifest.json配置文件中补充相关权限声明:
"permissions": {
"location": {
"desc": "您的位置信息将用于获取您周边的优惠信息"
}
}
uni-app获取地理位置
在uni-app开发环境中,调用uni.getLocation()函数即可获取地理坐标。详细操作流程如下:
首先,在uni-app项目的manifest.json文件内,配置获取地理位置所需的权限选项:
{
"mp-weixin": {
"appid": "...",
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序定位"
}
}
}
}其次,在具体的页面逻辑中执行uni.getLocation()调用:
uni.getLocation({
type: 'gcj02', // 坐标系类型
success: function (res) {
var latitude = res.latitude; // 维度
var longitude = res.longitude; // 经度
console.log('经度:' + longitude + ',纬度:' + latitude);
},
fail: function (res) {
console.log('获取定位失败:' + res.errMsg);
}
});这里的type参数用于指定坐标系类型,可选值包括wgs84、gcj02和bd09ll,默认值为wgs84。其中,gcj02代表国家测绘局坐标系,bd09ll代表百度地图坐标系,通常情况下使用gcj02即可满足需求。
执行uni.getLocation()后,系统会弹出授权请求对话框,需由用户手动确认授权。一旦获取成功,接口将返回经纬度数据,开发者可依据返回的经纬度信息执行后续业务逻辑。
至此,关于uniApp获取当前位置经纬度的介绍已完毕。如需了解更多uniApp获取经纬度的相关内容,建议搜索本站往期文章或继续浏览下方相关文章,感谢大家的支持!