uni.getLocation
是 uni-app 中的一个 API,用于获取用户的地理位置信息。它可以通过 GPS 或网络方式获取当前位置,并提供包括经纬度、速度、精度等信息。这个 API 在移动端(如安卓、iOS)和 H5 平台上均可使用。
基本语法
uni.getLocation({
type: 'wgs84', // 默认值为 'wgs84',可以获取经纬度
success: function(res) {
console.log(res.latitude); // 纬度
console.log(res.longitude); // 经度
console.log(res.speed); // 速度
console.log(res.accuracy); // 精度
},
fail: function(err) {
console.log(err); // 错误信息
}
});
参数说明
type(可选):指定位置的坐标类型。支持 'wgs84'
和 'gcj02'
,默认值为 'wgs84'
。'wgs84'
:WGS84标准坐标系(全球通用),适用于 GPS 定位。'gcj02'
:中国的火星坐标系,适用于中国的地图(高德地图坐标系)。
success(可选):成功回调,返回位置数据对象,包含以下字段:latitude
:纬度,范围:-90 ~ 90。longitude
:经度,范围:-180 ~ 180。speed
:速度,单位 m/s(仅限设备支持定位服务时)。accuracy
:位置精度,单位米(m)。
fail(可选):失败回调,返回错误信息。
complete(可选):调用结束后执行的回调,不论成功或失败。
返回的位置信息示例
{
latitude: 39.904989, // 纬度
longitude: 116.405285, // 经度
speed: 0, // 速度,单位 m/s
accuracy: 65 // 精度,单位 m
}
使用场景
地图定位:显示用户当前位置在地图上的标记。
导航系统:获取当前位置并进行路径规划。
位置服务:基于位置的服务,如周边商家推荐、天气查询等。
注意事项
在 iOS 和 Android 上,如果第一次使用该 API,用户需要授权位置权限。如果没有授权,可能会导致无法获取位置信息。
在 H5 中,uni.getLocation
依赖浏览器的地理位置权限,需要用户同意授权才能使用。
示例:获取当前位置并显示在地图上
uni.getLocation({
success: function (res) {
// 获取到经纬度后,将其用于地图定位
let latitude = res.latitude;
let longitude = res.longitude;
// 假设你在页面中有一个地图组件,可以直接设置位置
this.mapContext.moveToLocation({
latitude: latitude,
longitude: longitude
});
},
fail: function (err) {
console.error('获取位置失败:', err);
}
});
这个代码示例会获取用户的当前位置,并使用 mapContext.moveToLocation
方法将地图中心定位到当前经纬度。
uni.getLocation
是一个非常方便的 API,能够帮助你轻松实现基于位置的功能。
发布者:myrgd,转载请注明出处:https://www.object-c.cn/4925