uniapp定位函数
uniapp 定位函数的基本用法
uniapp 提供了 uni.getLocation 方法用于获取设备的当前位置信息。该方法支持 GPS、WIFI 等多种定位方式,并返回经纬度、速度、高度等数据。
uni.getLocation({
type: 'wgs84',
success: function (res) {
console.log('经度:' + res.longitude);
console.log('纬度:' + res.latitude);
console.log('速度:' + res.speed);
console.log('高度:' + res.altitude);
},
fail: function (err) {
console.error('获取位置失败:' + err.errMsg);
}
});
参数说明
type 参数用于指定坐标系类型:
wgs84:返回 GPS 坐标(默认值)gcj02:返回国测局坐标(适用于高德地图、腾讯地图等)
altitude 参数用于控制是否返回高度信息:
true:返回高度信息(可能增加定位时间)false:不返回高度信息(默认值)
权限配置
在 manifest.json 中需要配置定位权限:
{
"app-plus": {
"distribute": {
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>"
]
}
}
}
}
注意事项
定位功能需要用户授权,建议在调用前检查权限状态:
uni.authorize({
scope: 'scope.userLocation',
success() {
// 用户已授权
uni.getLocation({...});
},
fail() {
// 用户拒绝授权
uni.showModal({
content: '需要位置权限才能使用此功能',
showCancel: false
});
}
});
持续定位
对于需要持续获取位置的应用,可以使用 uni.onLocationChange:
uni.startLocationUpdate({
success: function () {
console.log('开始监听位置变化');
}
});
uni.onLocationChange(function (res) {
console.log('位置变化:', res);
});
// 停止监听
uni.stopLocationUpdate();
错误处理
常见的错误类型包括:
errMsg: "getLocation:fail auth deny":用户拒绝授权errMsg: "getLocation:fail:ERROR_NOCELL&WIFI_LOCATIONSWITCHOFF":未开启定位服务errMsg: "getLocation:fail 定位超时":定位超时
建议对每种错误情况进行适当的用户提示和后续处理。







