小程序如何获取用户当前位置

小程序如何获取用户当前位置

在很多小程序中,需要获取用户当前位置信息,比如地图应用、打车应用等等。本文将介绍如何在小程序中获取用户当前位置信息。

1. 获取用户授权

在获取用户当前位置信息时,需要先让用户同意授权,否则无法获取。调用小程序中的 wx.authorize 方法即可弹出授权窗口。

1.1 调用 wx.authorize 方法

wx.authorize({

scope: 'scope.userLocation',

success () {

console.log('用户已同意授权')

},

fail () {

console.log('用户未同意授权')

}

})

这里我们传入的 scope 参数为 scope.userLocation,即请求获取用户地理位置信息的授权。

1.2 用户已同意授权

如果用户同意授权,我们可以调用小程序中的 wx.getLocation 方法获取用户当前位置信息。

2. 获取用户当前位置信息

调用 wx.getLocation 方法可以获取用户当前位置信息。

2.1 调用 wx.getLocation 方法

wx.getLocation({

type: 'gcj02',

success (res) {

console.log('用户当前位置信息:', res)

},

fail () {

console.log('获取用户位置信息失败')

}

})

这里的参数 type 为坐标类型,支持 gcj02(国测局坐标)和 wgs84(GPS 坐标)。如果没有设置 type,默认为 gcj02。

2.2 获取用户当前位置信息成功

成功获取用户位置信息后,返回的结果如下:

{

latitude: 22.54286, // 纬度

longitude: 114.05956, // 经度

speed: -1, // 速度,单位 m/s,始终为 -1

accuracy: 5, // 位置精度

altitude: 32.5, // 高度,单位 m,Apple 要求小程序在获取高度时必须提示用户授权

verticalAccuracy: 2.3, // 垂直精度,单位 m(Android 无法获取,返回 0)

horizontalAccuracy: 5 // 水平精度,单位 m

}

3. 实时获取用户当前位置信息

实时获取用户当前位置信息可以调用小程序中的 wx.startLocationUpdate,该方法可监听用户实时位置变化,以及获取用户当前的海拔高度等信息。

3.1 调用 wx.startLocationUpdate

wx.startLocationUpdate({

success () {

console.log('开始监听位置变化')

},

fail () {

console.log('监听位置变化失败')

}

})

3.2 获取用户当前位置信息

监听到用户位置变化后,可以调用 wx.onLocationChange 获取用户当前位置信息。

wx.onLocationChange(function(res) {

console.log('用户当前位置信息:', res)

})

3.3 获取用户当前高度信息

wx.startLocationUpdate({

altitude: true,

success () {

console.log('获取用户当前高度信息成功')

},

fail () {

console.log('获取用户当前高度信息失败')

}

})

同样的,如果要获取用户海拔高度信息,需要在调用 wx.startLocationUpdate 时设置 altitude 参数为 true,并在 success 回调函数中获取。

4. 总结

本文介绍了如何在小程序中获取用户当前位置信息,需要先让用户同意授权,然后调用 wx.getLocation 方法即可获取用户当前位置信息,使用 wx.startLocationUpdate 方法可以实时获取用户位置信息和高度信息。开发者需要根据具体业务需求来使用获取到的位置信息。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。