uniapp定位描述
uniapp定位功能实现
uniapp提供了多种定位方式,包括H5、小程序和App端的定位功能。通过uni.getLocation方法可以获取设备当前位置信息。
基本定位方法
使用uni.getLocation方法获取当前位置信息:
uni.getLocation({
type: 'wgs84',
success: function (res) {
console.log('经度:' + res.longitude);
console.log('纬度:' + res.latitude);
},
fail: function (err) {
console.error('获取位置失败:' + err.errMsg);
}
});
定位参数说明
type参数支持以下坐标系类型:
- wgs84:返回GPS坐标
- gcj02:返回国测局坐标(适用于中国地图)
权限配置
在App端需要配置定位权限:
<!-- AndroidManifest.xml -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- iOS Info.plist -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>需要获取您的位置信息</string>
持续定位监听
对于需要持续获取位置的场景,可以使用uni.onLocationChange:
uni.onLocationChange(function (res) {
console.log('位置变化:', res.latitude, res.longitude);
});
// 停止监听
uni.offLocationChange();
逆地理编码
获取地址描述信息需要使用第三方地图服务API:
uni.request({
url: 'https://restapi.amap.com/v3/geocode/regeo',
data: {
key: '您的高德地图key',
location: `${longitude},${latitude}`
},
success: function(res) {
console.log('地址信息:', res.data.regeocode.formatted_address);
}
});
注意事项
- H5端定位需要HTTPS环境支持
- 小程序端需要在小程序管理后台配置定位权限
- App端首次调用会弹出权限申请对话框
- 定位精度受设备硬件和环境影响
错误处理
常见错误码及处理建议:
- 11:用户拒绝授权
- 12:设备不支持定位功能
- 13:定位失败
- 14:定位超时
建议在fail回调中对不同错误码进行针对性处理,如引导用户开启权限或提示设备不支持等。







