在 uni-app 中,可以使用 uni.getLocation
API 获取用户当前地理位置信息。
具体用法如下:
uni.getLocation({
type: 'wgs84', // 坐标类型,默认为 wgs84,可选的值为 gcj02
altitude: false, // 是否获取高度信息,默认为 false
success: function (res) {
console.log(res)
// 返回数据结构:
// {
// latitude: Number, // 纬度,范围为 -90~90,负数表示南纬
// longitude: Number, // 经度,范围为 -180~180,负数表示西经
// speed: Number, // 速度,单位 m/s
// accuracy: Number, // 位置的精确度
// altitude: Number, // 高度,单位 m
// verticalAccuracy: Number, // 垂直精度,单位 m(仅 altitude 为 true 时有效)
// horizontalAccuracy: Number // 水平精度,单位 m
// }
},
fail: function (err) {
console.log(err)
}
})
其中,type
参数表示坐标类型,有两种选择:wgs84
和 gcj02
。altitude
参数表示是否获取高度信息,如果设置为 true
,则返回的数据中会包含高度信息。
需要注意的是,为了保护用户隐私,当用户未授权获取位置信息时,该 API 将无法获取位置信息。此时,可以通过 uni.authorize
方法请求用户授权,示例代码如下
uni.authorize({
scope: 'scope.userLocation',
success() {
// 用户已授权,可以调用 getLocation 方法获取位置信息
},
fail() {
// 用户未授权,需要提示用户授权
}
})