我们知道微信小程序的wx.getLocation
api可以获取到定位信息(经纬度),但是wx.getLocation
api有个问题,不能实时获取经纬度。wx.getLocation
api在每30秒钟只能有效的获取一次经纬度,比如我坐在高铁或者飞机上面,每隔几秒刷新一次,但是获取到的经纬度是30秒钟之前的经纬度,用户体验会很差。
所以微信小程序还提供了可实时获取经纬度的api,wx.startLocationUpdate,wx.onLocationChange,wx.offLocationChange
组合使用
location.js
:封装获取经纬度
import $store from '@/store/index.js';
import {
GetLocationType
} from '@/config/AppParameter.js';
/* 请勿随意修改 */
/* 该模块封装获取经纬度方法,支持实时刷新获取最新位置信息 */
const authorization = async () => {
return await GetLocationNo();
};
const GetLocationNo = () => {
//速度快
return new Promise((resolve, reject) => {
uni.getLocation({
type: GetLocationType,
success: function(res) {
let getLocation = {
longitude: res.longitude,
latitude: res.latitude
};
$store.dispatch('man/SUpdateEquipmentInformation_tude', getLocation);
resolve(res);
},
complete: function(error) {
try {
if (error.errMsg.toString().length > 0 && error.errMsg.toString().indexOf(
'wx.onLocationChange') != -1 && $store.getters['man/ReturnVersion'] > 2160) {
getWxLocation()
}
} catch (e) {
}
resolve();
}
});
});
};
const getWxLocation = () => {
//速度慢
return new Promise((resolve, reject) => {
let _locationChangeFn = (res) => {
let getLocation = {
longitude: re