wx.getLocation接口可以指明要获取的位置坐标的类型,但是接口耗时比较久
// getLocation 接口获取位置新的时间比较长
wx.getLocation({
type: 'gcj02',
isHighAccuracy: true,
highAccuracyExpireTime: 10 * 1000,
success (res) {
console.log('getLocation', res)
const { latitude, longitude } = res || {}
wx.setStorageSync(USER_LOCATION_INFO, { latitude, longitude })
},
fail (err) {
console.log('getLocation-err', err)
}
})
通过wx.onLocationChage接口能够比较快速的获取位置坐标,经过测试数据得到的数据是500ms以内就能获取位置信息!
let startTime = 0
export function onUserLocationChange() {
wx.startLocationUpdate({
success(res) {
console.log('startLocationUpdate-开始接收位置更新', res);
startTime = + new Date()
},
fail(err) {
console.error('startLocationUpdate-位置更新失败', err);
}
});
wx.onLocationChange(linstenLocationChangeFn)
}
export function linstenLocationChangeFn(res: any) {
console.log( 111111111111111, 'onLocationChange', + new Date() - startTime, res)
const { latitude, longitude } = res || {}
wx.setStorageSync(USER_LOCATION_INFO, { latitude, longitude })
removeLinstenLocationChange()
}
// 位置变化监听 - 移除
export function removeLinstenLocationChange() {
wx.offLocationChange(linstenLocationChangeFn)
wx.stopLocationUpdate()
}
但是从打印的位置信息的结果上来看,不确定返回的坐标类型。有没有大佬知道坐标的类型是什么?通过这个方案快速获取位置信息有没有什么缺陷?