uni.getLocation({
type: 'gcj02',
geocode:true,
success: function (res) {
util.interfaceSave({
name: '定位成功',
method: 'load_get_location_succ',
request: JSON.stringify(this.data),
response: JSON.stringify(res)
})
that.postLoad(`${res.latitude},${res.longitude}`)
},
fail: (res) => {
util.interfaceSave({
name: '定位失败',
method: 'load_get_location_fail',
request: JSON.stringify(this.data),
response: JSON.stringify(res)
})
util.showErrorToast('请确认开启定位权限')
}
})
- 发布:2023-08-03 15:42
- 更新:2024-05-09 16:41
- 阅读:762
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11 家庭中文版(操作系统版本号:22621.1992)
HBuilderX类型: 正式
HBuilderX版本号: 3.7.9
手机系统: Android
手机系统版本号: Android 12
手机厂商: 华为
手机机型: FOA-AL00
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
用户在新疆哈密一地点(真实经纬度:42.671154,93.587778)通过业务逻辑调用uni.getLocation,结果获取到的实际经纬度为42.618296,94.659239,导致被我们业务中的电子围栏拦截住,无法进行业务。
用户在新疆哈密一地点(真实经纬度:42.671154,93.587778)通过业务逻辑调用uni.getLocation,结果获取到的实际经纬度为42.618296,94.659239,导致被我们业务中的电子围栏拦截住,无法进行业务。
预期结果:
uni.getLocation能够拿到正确的经纬度
uni.getLocation能够拿到正确的经纬度
实际结果:
经观察,目前所有定位错误的情况,都是用户在新疆哈密的该地点:42.671154,93.587778 附近,定位后的经纬度全部偏移到了该点:42.618296,94.659239,且不止一位用户遇到,设备类型也各种各样,但有的用户可以成功定位,已经排除自身业务代码问题。
经观察,目前所有定位错误的情况,都是用户在新疆哈密的该地点:42.671154,93.587778 附近,定位后的经纬度全部偏移到了该点:42.618296,94.659239,且不止一位用户遇到,设备类型也各种各样,但有的用户可以成功定位,已经排除自身业务代码问题。
Android由于谷歌服务被墙,或者手机上没有GMS,想正常定位就需要向高德等三方服务商申请SDK资质,获取AppKey。否则打包后定位就会不准。云打包时需要在manifest的SDK配置中填写 Appkey。在 manifest 可视化界面有详细申请指南,详见:https://ask.dcloud.net.cn/article/29。
DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信
我补充一个可能的愿意,如果是小程序返回值有问题,让其他省份的朋友进行测试,看是不是你附近有保密地区影响了正常数据返回。
c***@126.com
是在小程序中出现的这个问题,而且偏差了200多公里,但是有定位对的时候,比如一天内四次使用定位,可能一次有偏差,但是偏差的这个位置也是同一个经纬度
2024-01-13 17:55
HRK_01
回复 c***@126.com: 是只有微信小程序才会复现该问题吗,目前怀疑是小程序返回的值有误差
2024-01-16 15:40
n***@qq.com (作者)
已经正确配置了高德的SDK,这个问题是偶现,但是这个地方较为明显,且都偏移到这一个位置
2024-03-15 10:00