uniapp定位函数
uniapp 获取定位的基本方法
使用 uni.getLocation 方法获取设备当前位置信息。该方法返回经纬度、速度、高度等数据。
uni.getLocation({
type: 'wgs84',
success: function (res) {
console.log('经度:' + res.longitude);
console.log('纬度:' + res.latitude);
},
fail: function (err) {
console.error('获取定位失败:', err);
}
});
定位参数说明
type 参数指定坐标系类型:
wgs84:返回 GPS 坐标gcj02:返回国测局坐标(适用于高德、腾讯地图)
持续定位监听
使用 uni.onLocationChange 监听位置变化,适用于需要实时更新位置的场景。

const locationListener = uni.onLocationChange({
success: function (res) {
console.log('位置变化:', res);
},
fail: function (err) {
console.error('监听失败:', err);
}
});
// 需要停止时调用
locationListener.off();
权限处理
在 Android 和 iOS 上需要配置定位权限:
- manifest.json 中配置 requiredPrivateInfos
- App 端需在原生配置中添加定位权限声明
错误处理
常见错误类型:

- 用户拒绝授权
- 定位服务未开启
- 定位超时
建议在调用前检查权限和设置:
uni.authorize({
scope: 'scope.userLocation',
success() {
uni.getLocation({...});
},
fail() {
// 引导用户开启权限
}
});
地图组件结合
获取定位后可在 map 组件中显示位置:
<template>
<map :latitude="latitude" :longitude="longitude"></map>
</template>
注意事项
- 真机调试需要开启定位功能
- iOS 需要配置 NSLocationWhenInUseUsageDescription
- 部分安卓机需要动态申请权限
- 微信小程序需在 app.json 中声明权限
逆地理编码
将坐标转换为地址信息,可使用第三方服务或 uniapp 的插件市场相关插件。
uni.request({
url: 'https://restapi.amap.com/v3/geocode/regeo',
data: {
key: '你的高德key',
location: `${longitude},${latitude}`
},
success(res) {
console.log('地址信息:', res.data);
}
});






