uniapp开发App时需要用到获取经纬度的方法,uni.getLocation() 结尾有我在开发时遇到的问题
用这个方法 然后需要在manifest.json的App模块配置中配置定位
key需要自己在高德平台注册然后自己获取就行了
以下是获取附近加油站的位置的代码
getLocation(){
uni.getLocation({
type: 'wgs84 ', //不太知道wgs84 跟 gcj02 的具体区别
isHighAccuracy:true, // 开启高精度 没开高精度的时候定位偏移了一个路口
success:res=> { //成功回调
uni.showToast({
title:'定位获取成功',
icon:'none'
})
this.lat = res.latitude //自己打印一个res看看里面有啥
this.lng = res.longitude
this.$rqt.distance({ //获取经纬度之后调用接口 也可以把调用接口写一个方法调用方法
lat:this.lat, //向后台传参
lng:this.lng //传参
}).then(res=>{
this.gasId = res.data.gasId //后面这些你愿意获取啥就获取啥
this.gasName = res.data.gasName
this.isShow = res.data.isShow
console.log("当前加油站名称",this.gasName)
})
},fail:res=> { //失败毁掉 也可以用complate 但是用complate成功失败都会打印
uni.showToast({
title:"当前位置获取失败",
icon:'none'
})
return
}
})
},
开发时遇到的问题:
uniapp在真机测试的时候 能获取到经纬度,并且调用接口,但是线上测试的时候获取不到经纬度,调失败的回调函数.
解决方法:
配置Maps地图 只需要选上就行了 KEY 会自己给你用上面的,不需要其他配置项
然后我一开始获取经纬度 type配置的是type='gcjo2' 后来改成了type='wgs84' 线上测试的时候就能获取到当前的经纬度信息了,接口也能成功调用.