和微信定位类型有关系!类型改为gcj02,加上属性isHighAccuracy为true就可以精确定位10m以内
wx.getLocation({
type: 'gcj02',
isHighAccuracy: true,//开启高精度定位
// 获取地理位置成功
success(res) {
if (callback) callback(res);
},
// 获取地理位置失败
fail() {}
});
getLocation: function(callback, fail) {
let that = this;
wx.authorize({
scope: 'scope.userLocation',
// 授权-获取地理位置
success() {
// 获取地理位置
that.location(callback);
},
// 拒绝-获取地理位置
fail() {
// 获取用户当前设置
wx.getSetting({
// 获取用户当前设置-成功
success(res) {
// 没有授权-则请求设置
if (!res.authSetting['scope.userLocation']) {
// 提示需求授权
wx.showModal({
title: '请求授权当前位置',
content: '',
// 确认-打开设置
success: function(result) {
if (result.confirm) {
// 打开设置(不管是否授权,返回后都会执行onShow)
wx.openSetting({
success(res) {
wx.getSetting({
success() {
if (!res
.authSetting[
'scope.userLocation'
]
) {
if (
fail
)
fail();
} else {
that.location(
callback
);
}
}
});
}
});
} else {
// 取消打开设置
if (fail) fail();
}
}
});
} else {
// 已经授权-则直接获取地理位置
that.location(callback);
}
}
});
}
});
},
参考链接:https://blog.csdn.net/abchhhxz/article/details/119697477