最近,项目需要获取一个当前定位的市级名称,看了网上的方法都是获取定位经纬度,然后调用api进行反向解析,可是这不适合uniapp所有端都可通用的宗旨,先自己摸索看了文档解决此问题,特在此处随意记上一笔。
首先代码,关键是type和geocode这两个值的配置
// 获取当前市区
getnowcity(){
uni.getLocation({
type:'gcj02',
geocode:true,
success: (res) => {
// console.log("ssss")
// this.nowlocation = formatLocation(res.longitude, res.latitude);
this.nowlocation = res
if(res.address && res.address.city){
this.nowcity = res.address.city
this.getweather()
}
console.log(this.nowlocation)
},
fail: (err) => {
// #ifdef MP-BAIDU
if (err.errCode === 202 || err.errCode === 10003) { // 202模拟器 10003真机 user deny
this.showConfirm();
}
// #endif
// #ifndef MP-BAIDU
if (err.errMsg.indexOf("auth deny") >= 0) {
uni.showToast({
title: "访问位置被拒绝"
})
} else {
uni.showToast({
title: err.errMsg+"102",
icon:'error'
})
}
// #endif
this.getweather()
}
})
}
然后,需要外部定位sdk,这里我用的是高德
在这里,到高德开发者平台配置好,就ok了。
到这里就可以为所欲为了,哪个地方都可以随便调用